Index: lucene/src/java/org/apache/lucene/index/SegmentReader.java =================================================================== --- lucene/src/java/org/apache/lucene/index/SegmentReader.java (revision 1180081) +++ lucene/src/java/org/apache/lucene/index/SegmentReader.java (working copy) @@ -50,7 +50,7 @@ CloseableThreadLocal fieldsReaderLocal = new FieldsReaderLocal(); CloseableThreadLocal termVectorsLocal = new CloseableThreadLocal(); - volatile BitVector liveDocs; + BitVector liveDocs; AtomicInteger liveDocsRef = null; private boolean liveDocsDirty = false; private boolean normsDirty = false; @@ -136,7 +136,7 @@ @Override public Bits getLiveDocs() { - ensureOpen(); + // Don't call ensureOpen() here (it could affect performance), and this implementation will still work fine after close anyway return liveDocs; }