Index: lucene/src/java/org/apache/lucene/index/IndexWriter.java =================================================================== --- lucene/src/java/org/apache/lucene/index/IndexWriter.java (revision 1074881) +++ lucene/src/java/org/apache/lucene/index/IndexWriter.java (working copy) @@ -857,14 +857,14 @@ private FieldInfos getCurrentFieldInfos() throws IOException { final FieldInfos fieldInfos; if (segmentInfos.size() > 0) { - fieldInfos = new FieldInfos(); - for(SegmentInfo info : segmentInfos) { - final FieldInfos segFieldInfos = getFieldInfos(info); + fieldInfos = new FieldInfos(); + for(SegmentInfo info : segmentInfos) { + final FieldInfos segFieldInfos = getFieldInfos(info); for (FieldInfo fi : segFieldInfos) { fieldInfos.add(fi); - } } - } else { + } + } else { fieldInfos = new FieldInfos(); } return fieldInfos; @@ -3288,19 +3288,18 @@ } final int termsIndexDivisor; - final boolean loadDocStores; if (poolReaders && mergedSegmentWarmer != null) { // Load terms index & doc stores so the segment // warmer can run searches, load documents/term // vectors termsIndexDivisor = config.getReaderTermsIndexDivisor(); - loadDocStores = true; } else { termsIndexDivisor = -1; - loadDocStores = false; } + final boolean loadDocStores = mergedSegmentWarmer != null; + // TODO: in the non-realtime case, we may want to only // keep deletes (it's costly to open entire reader // when we just need deletes)