Index: src/java/org/apache/lucene/index/DirectoryIndexReader.java =================================================================== --- src/java/org/apache/lucene/index/DirectoryIndexReader.java (revision 674334) +++ src/java/org/apache/lucene/index/DirectoryIndexReader.java (working copy) @@ -86,21 +86,26 @@ if (this.hasChanges || this.isCurrent()) { // the index hasn't changed - nothing to do here + System.out.println("DirectoryIndexReader.reopen(): skip check: hasChanges=" + this.hasChanges + " isCurrent=" + this.isCurrent()); return this; } + System.out.println("DirectoryIndexReader.reopen(): do reopen this=" + this); return (DirectoryIndexReader) new SegmentInfos.FindSegmentsFile(directory) { protected Object doBody(String segmentFileName) throws CorruptIndexException, IOException { SegmentInfos infos = new SegmentInfos(); infos.read(directory, segmentFileName); + System.out.println("DirectoryIndexReader.reopen(): segmentsFile=" + segmentFileName + " version=" + infos.getVersion()); DirectoryIndexReader newReader = doReopen(infos); if (DirectoryIndexReader.this != newReader) { newReader.init(directory, infos, closeDirectory); newReader.deletionPolicy = deletionPolicy; - } + System.out.println("DirectoryIndexReader.reopen(): got new reader " + newReader); + } else + System.out.println("DirectoryIndexReader.reopen(): did not get new reader"); return newReader; } @@ -147,7 +152,9 @@ */ public boolean isCurrent() throws CorruptIndexException, IOException { ensureOpen(); - return SegmentInfos.readCurrentVersion(directory) == segmentInfos.getVersion(); + final long indexVersion = SegmentInfos.readCurrentVersion(directory); + System.out.println("DirectoryIndexReader.isCurrent(): indexVersion=" + indexVersion + " myVersion=" + segmentInfos.getVersion()); + return indexVersion == segmentInfos.getVersion(); } /**