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.