Index: modules/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestIndexClose.java =================================================================== --- modules/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestIndexClose.java (revision 1196963) +++ modules/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestIndexClose.java (working copy) @@ -130,8 +130,8 @@ return new InstrumentedIndexReader(super.openReader()); } @Override - protected void openIndexWriter (Directory directory, OpenMode openMode) throws IOException { - indexWriter = new InstrumentedIndexWriter(directory, + protected IndexWriter openIndexWriter (Directory directory, OpenMode openMode) throws IOException { + return new InstrumentedIndexWriter(directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.KEYWORD, false)) .setOpenMode(openMode)); } Index: modules/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java =================================================================== --- modules/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java (revision 1196963) +++ modules/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java (working copy) @@ -76,14 +76,13 @@ * algorithm used. *

* This class offers some hooks for extending classes to control the - * {@link IndexWriter} instance that is used. See {@link #openIndexWriter} and - * {@link #closeIndexWriter()} . + * {@link IndexWriter} instance that is used. See {@link #openIndexWriter}. * * @lucene.experimental */ public class DirectoryTaxonomyWriter implements TaxonomyWriter { - protected IndexWriter indexWriter; + private IndexWriter indexWriter; private int nextID; private char delimiter = Consts.DEFAULT_DELIMITER; private SinglePositionTokenStream parentStream = new SinglePositionTokenStream(Consts.PAYLOAD_PARENT); @@ -171,7 +170,7 @@ throws CorruptIndexException, LockObtainFailedException, IOException { - openIndexWriter(directory, openMode); + indexWriter = openIndexWriter(directory, openMode); reader = null; FieldType ft = new FieldType(TextField.TYPE_UNSTORED); @@ -212,8 +211,7 @@ * {@link org.apache.lucene.index.IndexDeletionPolicy}, different RAM size * etc.
* NOTE: the instance this method returns will be closed upon calling - * to {@link #close()}. If you wish to do something different, you should - * override {@link #closeIndexWriter()}. + * to {@link #close()}. * * @param directory * the {@link Directory} on top of which an {@link IndexWriter} @@ -221,7 +219,7 @@ * @param openMode * see {@link OpenMode} */ - protected void openIndexWriter(Directory directory, OpenMode openMode) + protected IndexWriter openIndexWriter(Directory directory, OpenMode openMode) throws IOException { // Make sure we use a MergePolicy which merges segments in-order and thus // keeps the doc IDs ordered as well (this is crucial for the taxonomy @@ -229,7 +227,7 @@ IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_40, new KeywordAnalyzer()).setOpenMode(openMode).setMergePolicy( new LogByteSizeMergePolicy()); - indexWriter = new IndexWriter(directory, config); + return new IndexWriter(directory, config); } // Currently overridden by a unit test that verifies that every index we open @@ -279,7 +277,11 @@ */ @Override public synchronized void close() throws CorruptIndexException, IOException { - closeIndexWriter(); + if (indexWriter != null) { + indexWriter.close(); + indexWriter = null; + } + closeResources(); } @@ -313,17 +315,6 @@ } /** - * A hook for extending classes to control closing the {@link IndexWriter} - * returned by {@link #openIndexWriter}. - */ - protected void closeIndexWriter() throws CorruptIndexException, IOException { - if (indexWriter != null) { - indexWriter.close(); - indexWriter = null; - } - } - - /** * Look up the given category in the cache and/or the on-disk storage, * returning the category's ordinal, or a negative number in case the * category does not yet exist in the taxonomy.