Index: src/java/org/apache/lucene/index/IndexReader.java =================================================================== --- src/java/org/apache/lucene/index/IndexReader.java (revision 788015) +++ src/java/org/apache/lucene/index/IndexReader.java (working copy) @@ -114,7 +114,8 @@ protected boolean hasChanges; private volatile int refCount; - + private boolean isOpen; + private boolean disableFakeNorms = false; /** Expert: returns the current refCount for this reader */ @@ -140,6 +141,7 @@ assert refCount > 0; ensureOpen(); refCount++; + isOpen = true; } /** @@ -158,6 +160,10 @@ if (refCount == 1) { commit(); doClose(); + isOpen = false; + // preventing re-calling this method if decRef() followed by a close() + // happens. + closed = true; } refCount--; } @@ -189,13 +195,14 @@ protected IndexReader() { refCount = 1; + isOpen = true; } /** * @throws AlreadyClosedException if this IndexReader is closed */ protected final void ensureOpen() throws AlreadyClosedException { - if (refCount <= 0) { + if (!isOpen) { throw new AlreadyClosedException("this IndexReader is closed"); } }