[
https://issues.apache.org/jira/browse/LUCENE-986?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hoss Man updated LUCENE-986:
----------------------------
Attachment: lucene-986.patch
I got the patch to apply cleanly (see mailing list for details) On the whole
it looks really good, i'm attaching an updated version with some minor
improvements (mainly javadocs), but first a few questions...
* just to clarify: IndexReader(Directory) is only around for
backwards compatibility in subclasses right? And the only reason
for the "private Directory" is to keep supporting the directory()
method for any subclasses relying on it?
* IndexReader() says it can be removed once the other constructor is
removed ... why? is that just pointing out that we can rely on the
default constructor?
* since one of the goals is that IndexReaders which don't own their
directory shouldn't utilize segmentInfos, would it make sense to
eliminate directoryOwner from DirectoryIndexReader and instead test
whether (null == segmentInfos) ?
* the way TestMultiReader is setup with the "mode" is a bit confusing
... perhaps instead we should make a subclass where only openReader
is overwritten (it will inherit the individual test methods) ?
here's the list of tweaks I made...
* added a note in the IndexReader class javadocs about
methods that throw UnSupOp but aren't abstract.
* added javadocs to the IndexReader(Directory) constructor based on my
understanding
* added back javadocs to IndexReader methods that now throw UnSupOp to
make it clear what they do to callers looking at the API, but made
it clear tthe default impls throw UnSupOp
* made IndexReader.directory() throw UnSupOp if directory is null,
enhanced it's javadocs.
* /* NOOP */ in IndexReader.acquireWriteLock so it's clear to code analysis
tools that it's not a mistake.
* small additions to javadocs for DirectoryIndexReader class, but
these should probably be elaborated on (depending on what you think
of my segmentInfos==null idea above)
* made DirectoryIndexReader(...) call init(...) to eliminate a small
about of duplication.
> Refactor segmentInfos from IndexReader into its subclasses
> ----------------------------------------------------------
>
> Key: LUCENE-986
> URL: https://issues.apache.org/jira/browse/LUCENE-986
> Project: Lucene - Java
> Issue Type: Improvement
> Components: Index
> Reporter: Michael Busch
> Assignee: Michael Busch
> Priority: Minor
> Fix For: 2.3
>
> Attachments: lucene-986.patch, lucene-986.patch
>
>
> References to segmentInfos in IndexReader cause different kinds of problems
> for subclasses of IndexReader, like e. g. MultiReader.
> Only subclasses of IndexReader that own the index directory, namely
> SegmentReader and MultiSegmentReader, should have a SegmentInfos object
> and be able to access it.
> Further information:
> http://www.gossamer-threads.com/lists/lucene/java-dev/51808
> http://www.gossamer-threads.com/lists/lucene/java-user/52460
> A part of the refactoring work was already done in LUCENE-781
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]