[
https://issues.apache.org/jira/browse/LUCENE-1453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12718004#action_12718004
]
Uwe Schindler edited comment on LUCENE-1453 at 6/10/09 2:40 AM:
----------------------------------------------------------------
Hi Earwin,
attached is a patch, that simply reuses SegmentReader.Ref. Factoring it out to
o.a.l.util would be harder to do at the moment (some test-cases rely on this
class). And SegmentReader seems to be the only class, that uses such a Ref
construct. Other classes have their refCounter as Field.
As the Filter is just a deprecated wrapper, that is removed in 3.0, I think
reusing SegmentReader.Ref for that is ok.
This patch also contains a new test for clone(), that does the same like the
reopen test (checking the refcounts).
Closeable is a Java 1.5 interface only, so this refactoring must wait until
3.0, but the idea is good!
was (Author: thetaphi):
Hi Earwin,
attached is a patch, that simply reuses SegmentReader.Ref. Factoring it out to
o.a.l.util would be harder to do at the moment (some test-cases rely on this
class). And SegmentReader seems to be the only class, that uses such a Ref
construct. Other classes have their refCounter as Field.
As the Filter is just a deprecated wrapper, that is removed in 3.0, I think
reusing SegmentReader.Ref for that is ok.
Closeable is a Java 1.5 interface only, so this refactoring must wait until
3.0, but the idea is good!
> When reopen returns a new IndexReader, both IndexReaders may now control the
> lifecycle of the underlying Directory which is managed by reference counting
> ---------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: LUCENE-1453
> URL: https://issues.apache.org/jira/browse/LUCENE-1453
> Project: Lucene - Java
> Issue Type: Bug
> Affects Versions: 2.4
> Reporter: Mark Miller
> Assignee: Michael McCandless
> Priority: Minor
> Fix For: 2.4.1, 2.9
>
> Attachments: Failing-testcase-LUCENE-1453.patch,
> LUCENE-1453-with-FSDir-open.patch, LUCENE-1453.patch, LUCENE-1453.patch,
> LUCENE-1453.patch, LUCENE-1453.patch, LUCENE-1453.patch, LUCENE-1453.patch
>
>
> Rough summary. Basically, FSDirectory tracks references to FSDirectory and
> when IndexReader.reopen shares a Directory with a created IndexReader and
> closeDirectory is true, FSDirectory's ref management will see two decrements
> for one increment. You can end up getting an AlreadyClosed exception on the
> Directory when the IndexReader is open.
> I have a test I'll put up. A solution seems fairly straightforward (at least
> in what needs to be accomplished).
--
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]