Index: src/java/org/apache/lucene/index/ParallelReader.java =================================================================== --- src/java/org/apache/lucene/index/ParallelReader.java (revision 888547) +++ src/java/org/apache/lucene/index/ParallelReader.java (working copy) @@ -69,6 +69,21 @@ this.incRefReaders = !closeSubReaders; } + /** {@inheritDoc} */ + @Override + public String getName() { + final StringBuilder buffer = new StringBuilder("ParallelReader("); + final Iterator iter = readers.iterator(); + if (iter.hasNext()) { + buffer.append(iter.next().getName()); + } + while (iter.hasNext()) { + buffer.append(", ").append(iter.next().getName()); + } + buffer.append(')'); + return buffer.toString(); + } + /** Add an IndexReader. * @throws IOException if there is a low-level IO error */ Index: src/java/org/apache/lucene/index/SegmentReader.java =================================================================== --- src/java/org/apache/lucene/index/SegmentReader.java (revision 888547) +++ src/java/org/apache/lucene/index/SegmentReader.java (working copy) @@ -1200,6 +1200,14 @@ return termVectorsReader.get(docNumber); } + /** + * Return the name of the segment this reader is reading. + */ + @Override + public String getName() { + return core.segment; + } + /** * Return the name of the segment this reader is reading. */ Index: src/java/org/apache/lucene/index/DirectoryReader.java =================================================================== --- src/java/org/apache/lucene/index/DirectoryReader.java (revision 888547) +++ src/java/org/apache/lucene/index/DirectoryReader.java (working copy) @@ -299,6 +299,18 @@ } } + /** {@inheritDoc} */ + @Override + public String getName() { + final StringBuilder buffer = new StringBuilder("DirectoryReader("); + buffer.append(segmentInfos.getCurrentSegmentFileName()); + for (int i = 0; i < subReaders.length; ++i) { + buffer.append(", ").append(subReaders[i].getName()); + } + buffer.append(')'); + return buffer.toString(); + } + private void initialize(SegmentReader[] subReaders) { this.subReaders = subReaders; starts = new int[subReaders.length + 1]; // build starts array Index: src/java/org/apache/lucene/index/IndexReader.java =================================================================== --- src/java/org/apache/lucene/index/IndexReader.java (revision 888547) +++ src/java/org/apache/lucene/index/IndexReader.java (working copy) @@ -146,6 +146,23 @@ } /** + * Get a symbolic name for this IndexReader. + */ + public String getName() { + final StringBuilder buffer = new StringBuilder(getClass().getSimpleName()); + buffer.append('('); + final IndexReader[] subReaders = getSequentialSubReaders(); + if ((subReaders != null) && (subReaders.length > 0)) { + buffer.append(subReaders[0].getName()); + for (int i = 1; i < subReaders.length; ++i) { + buffer.append(", ").append(subReaders[i].getName()); + } + } + buffer.append(')'); + return buffer.toString(); + } + + /** * Expert: decreases the refCount of this IndexReader * instance. If the refCount drops to 0, then pending * changes (if any) are committed to the index and this