Index: lucene/backwards/src/test/org/apache/lucene/index/TestDoc.java =================================================================== --- lucene/backwards/src/test/org/apache/lucene/index/TestDoc.java (revision 1036920) +++ lucene/backwards/src/test/org/apache/lucene/index/TestDoc.java (working copy) @@ -185,7 +185,8 @@ merger.add(r1); merger.add(r2); merger.merge(); - merger.closeReaders(); + r1.close(); + r2.close(); if (useCompoundFile) { List filesToDelete = merger.createCompoundFile(merged + ".cfs"); Index: lucene/backwards/src/test/org/apache/lucene/index/TestSegmentMerger.java =================================================================== --- lucene/backwards/src/test/org/apache/lucene/index/TestSegmentMerger.java (revision 1036920) +++ lucene/backwards/src/test/org/apache/lucene/index/TestSegmentMerger.java (working copy) @@ -67,7 +67,6 @@ merger.add(reader1); merger.add(reader2); int docsMerged = merger.merge(); - merger.closeReaders(); assertTrue(docsMerged == 2); //Should be able to open a new SegmentReader against the new directory SegmentReader mergedReader = SegmentReader.get(true, new SegmentInfo(mergedSegment, docsMerged, mergedDir, false, true), IndexReader.DEFAULT_TERMS_INDEX_DIVISOR); Index: lucene/contrib/misc/src/java/org/apache/lucene/index/IndexSorter.java =================================================================== --- lucene/contrib/misc/src/java/org/apache/lucene/index/IndexSorter.java (revision 1036920) +++ lucene/contrib/misc/src/java/org/apache/lucene/index/IndexSorter.java (working copy) @@ -183,6 +183,11 @@ } } + @Override + public IndexReader[] getSequentialSubReaders() { + return null; + } + public Document document(int n) throws IOException { return document(n, null); } Index: lucene/contrib/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java =================================================================== --- lucene/contrib/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java (revision 1036920) +++ lucene/contrib/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java (working copy) @@ -221,6 +221,11 @@ } @Override + public IndexReader[] getSequentialSubReaders() { + return null; + } + + @Override public TermPositions termPositions() throws IOException { return new FilterTermPositions(in.termPositions()) { Index: lucene/src/java/org/apache/lucene/index/SegmentMerger.java =================================================================== --- lucene/src/java/org/apache/lucene/index/SegmentMerger.java (revision 1036920) +++ lucene/src/java/org/apache/lucene/index/SegmentMerger.java (working copy) @@ -30,14 +30,12 @@ import org.apache.lucene.store.Directory; import org.apache.lucene.store.IndexInput; import org.apache.lucene.store.IndexOutput; +import org.apache.lucene.util.ReaderUtil; /** * The SegmentMerger class combines two or more Segments, represented by an IndexReader ({@link #add}, * into a single Segment. After adding the appropriate readers, call the merge method to combine the * segments. - *
- * If the compoundFile flag is set, then the segments will be merged into a compound file.
- *
*
* @see #merge
* @see #add
@@ -113,19 +111,10 @@
* @param reader
*/
final void add(IndexReader reader) {
- readers.add(reader);
+ ReaderUtil.gatherSubReaders(readers, reader);
}
/**
- *
- * @param i The index of the reader to return
- * @return The ith reader to be merged
- */
- final IndexReader segmentReader(int i) {
- return readers.get(i);
- }
-
- /**
* Merges the readers specified by the {@link #add} method into the directory passed to the constructor
* @return The number of documents that were merged
* @throws CorruptIndexException if the index is corrupt
@@ -166,17 +155,6 @@
return mergedDocs;
}
- /**
- * close all IndexReaders that have been added.
- * Should not be called before merge().
- * @throws IOException
- */
- final void closeReaders() throws IOException {
- for (final IndexReader reader : readers) {
- reader.close();
- }
- }
-
final List