lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hoss Man (JIRA)" <j...@apache.org>
Subject [jira] Updated: (LUCENE-986) Refactor segmentInfos from IndexReader into its subclasses
Date Tue, 18 Sep 2007 08:20:43 GMT

     [ 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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message