Index: lucene/contrib/snowball/src/test/org/apache/lucene/analysis/snowball/TestSnowball.java =================================================================== --- lucene/contrib/snowball/src/test/org/apache/lucene/analysis/snowball/TestSnowball.java (revision 682416) +++ lucene/contrib/snowball/src/test/org/apache/lucene/analysis/snowball/TestSnowball.java (working copy) @@ -54,11 +54,13 @@ * . */ -import java.io.*; +import java.io.StringReader; -import junit.framework.*; +import junit.framework.TestCase; -import org.apache.lucene.analysis.*; +import org.apache.lucene.analysis.Analyzer; +import org.apache.lucene.analysis.Token; +import org.apache.lucene.analysis.TokenStream; public class TestSnowball extends TestCase { @@ -66,12 +68,12 @@ String input, String[] output) throws Exception { TokenStream ts = a.tokenStream("dummy", new StringReader(input)); + Token token = new Token(); for (int i = 0; i < output.length; i++) { - Token t = ts.next(); - assertNotNull(t); - assertEquals(output[i], t.termText()); + Token t = ts.next(token); + assertEquals(output[i], t.term()); } - assertNull(ts.next()); + assertNull(ts.next(token)); ts.close(); } @@ -83,21 +85,22 @@ public void testFilterTokens() throws Exception { - final Token tok = new Token("accents", 2, 7, "wrd"); + final Token tok = new Token(2, 7, "wrd"); + tok.setTermBuffer("accents"); tok.setPositionIncrement(3); SnowballFilter filter = new SnowballFilter( new TokenStream() { - public Token next() { + public Token next(Token token) { return tok; } }, "English" ); - Token newtok = filter.next(); + Token newtok = filter.next(new Token()); - assertEquals("accent", newtok.termText()); + assertEquals("accent", newtok.term()); assertEquals(2, newtok.startOffset()); assertEquals(7, newtok.endOffset()); assertEquals("wrd", newtok.type()); Index: lucene/contrib/snowball/src/java/org/apache/lucene/analysis/snowball/SnowballFilter.java =================================================================== --- lucene/contrib/snowball/src/java/org/apache/lucene/analysis/snowball/SnowballFilter.java (revision 682416) +++ lucene/contrib/snowball/src/java/org/apache/lucene/analysis/snowball/SnowballFilter.java (working copy) @@ -18,11 +18,10 @@ */ import java.io.IOException; - import java.lang.reflect.Method; import net.sf.snowball.SnowballProgram; -import net.sf.snowball.ext.*; +import net.sf.snowball.ext.EnglishStemmer; import org.apache.lucene.analysis.Token; import org.apache.lucene.analysis.TokenFilter; @@ -60,20 +59,18 @@ } /** Returns the next input Token, after being stemmed */ - public final Token next() throws IOException { - Token token = input.next(); + public final Token next(Token token) throws IOException { + token = input.next(token); if (token == null) return null; - stemmer.setCurrent(token.termText()); + stemmer.setCurrent(token.term()); try { stemMethod.invoke(stemmer, EMPTY_ARGS); } catch (Exception e) { throw new RuntimeException(e.toString()); } - - Token newToken = new Token(stemmer.getCurrent(), - token.startOffset(), token.endOffset(), token.type()); - newToken.setPositionIncrement(token.getPositionIncrement()); - return newToken; + token.clear(); + token.setTermBuffer(stemmer.getCurrent()); + return token; } }