Index: src/test/org/apache/lucene/index/TestIndexReaderClone.java =================================================================== --- src/test/org/apache/lucene/index/TestIndexReaderClone.java (revision 756761) +++ src/test/org/apache/lucene/index/TestIndexReaderClone.java (working copy) @@ -20,6 +20,8 @@ import org.apache.lucene.index.SegmentReader.Norm; import org.apache.lucene.search.Similarity; import org.apache.lucene.analysis.SimpleAnalyzer; +import org.apache.lucene.document.Document; +import org.apache.lucene.document.Field; import org.apache.lucene.store.Directory; import org.apache.lucene.store.LockObtainFailedException; import org.apache.lucene.store.MockRAMDirectory; @@ -440,4 +442,19 @@ r1.close(); dir1.close(); } + + public void testCloseStoredFields() throws Exception { + final Directory dir = new MockRAMDirectory(); + IndexWriter w = new IndexWriter(dir, new SimpleAnalyzer(), IndexWriter.MaxFieldLength.UNLIMITED); + w.setUseCompoundFile(false); + Document doc = new Document(); + doc.add(new Field("field", "yes it's stored", Field.Store.YES, Field.Index.ANALYZED)); + w.addDocument(doc); + w.close(); + IndexReader r1 = IndexReader.open(dir); + IndexReader r2 = (IndexReader) r1.clone(false); + r1.close(); + r2.close(); + dir.close(); + } } Index: src/java/org/apache/lucene/index/SegmentReader.java =================================================================== --- src/java/org/apache/lucene/index/SegmentReader.java (revision 756761) +++ src/java/org/apache/lucene/index/SegmentReader.java (working copy) @@ -676,10 +676,7 @@ clone.freqStream = freqStream; clone.proxStream = proxStream; clone.termVectorsReaderOrig = termVectorsReaderOrig; - - if (fieldsReaderOrig != null) { - clone.fieldsReaderOrig = (FieldsReader) fieldsReaderOrig.clone(); - } + clone.fieldsReaderOrig = fieldsReaderOrig; if (doClone) { if (deletedDocs != null) {