Index: src/java/org/apache/lucene/analysis/WordlistLoader.java =================================================================== --- src/java/org/apache/lucene/analysis/WordlistLoader.java (revision 191717) +++ src/java/org/apache/lucene/analysis/WordlistLoader.java (working copy) @@ -19,7 +19,8 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; -import java.io.LineNumberReader; +import java.io.Reader; +import java.io.BufferedReader; import java.util.HashSet; import java.util.Hashtable; import java.util.Iterator; @@ -44,20 +45,34 @@ public static HashSet getWordSet(File wordfile) throws IOException { HashSet result = new HashSet(); FileReader freader = null; - LineNumberReader lnr = null; try { freader = new FileReader(wordfile); - lnr = new LineNumberReader(freader); + result = getWordSet(freader); + } + finally { + if (freader != null) + freader.close(); + } + return result; + } + + public static HashSet getWordSet(Reader reader) throws IOException { + HashSet result = new HashSet(); + BufferedReader br = null; + try { + if (reader instanceof BufferedReader) { + br = (BufferedReader) reader; + } else { + br = new BufferedReader(reader); + } String word = null; - while ((word = lnr.readLine()) != null) { + while ((word = br.readLine()) != null) { result.add(word.trim()); } } finally { - if (lnr != null) - lnr.close(); - if (freader != null) - freader.close(); + if (br != null) + br.close(); } return result; } Index: src/java/org/apache/lucene/analysis/standard/StandardAnalyzer.java =================================================================== --- src/java/org/apache/lucene/analysis/standard/StandardAnalyzer.java (revision 191717) +++ src/java/org/apache/lucene/analysis/standard/StandardAnalyzer.java (working copy) @@ -51,6 +51,10 @@ stopSet = WordlistLoader.getWordSet(stopwords); } + public StandardAnalyzer(Reader stopwords) throws IOException { + stopSet = WordlistLoader.getWordSet(stopwords); + } + /** Constructs a {@link StandardTokenizer} filtered by a {@link StandardFilter}, a {@link LowerCaseFilter} and a {@link StopFilter}. */ public TokenStream tokenStream(String fieldName, Reader reader) {