Index: lucene/src/java/org/apache/lucene/index/DirectoryReader.java =================================================================== --- lucene/src/java/org/apache/lucene/index/DirectoryReader.java (revision 949292) +++ lucene/src/java/org/apache/lucene/index/DirectoryReader.java (working copy) @@ -163,22 +163,20 @@ final int numSegments = infos.size(); SegmentReader[] readers = new SegmentReader[numSegments]; final Directory dir = writer.getDirectory(); - int upto = 0; for (int i=0;i=0;upto--) { + for(i--;i>=0;i--) { try { - readers[upto].close(); + readers[i].close(); } catch (Throwable ignore) { // keep going - we want to clean up as much as possible } @@ -189,13 +187,6 @@ this.writer = writer; - if (upto < readers.length) { - // This means some segments were in a foreign Directory - SegmentReader[] newReaders = new SegmentReader[upto]; - System.arraycopy(readers, 0, newReaders, 0, upto); - readers = newReaders; - } - initialize(readers); }