[ 
https://issues.apache.org/jira/browse/LUCENE-3464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13114795#comment-13114795
 ] 

Michael McCandless commented on LUCENE-3464:
--------------------------------------------

Another trappiness I've seen on IR.reopen is... the method implies that the 
reopen will happen "in place".  And I've seen users try to simply do 
IR.reopen().

Maybe, the public API we expose should be something like 
IR.openIfChanged(oldReader), a static method?  This would open a new reader 
only if there are changes vs the old one, and would try to share resources (ie 
shared segments) with the old reader, when possible.

We'd have to add protected IR methods that "really" try to do the reopen.

> Rename IndexReader.reopen to make it clear that reopen may not happen
> ---------------------------------------------------------------------
>
>                 Key: LUCENE-3464
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3464
>             Project: Lucene - Java
>          Issue Type: Bug
>            Reporter: Michael McCandless
>            Assignee: Michael McCandless
>             Fix For: 3.5, 4.0
>
>
> Spinoff from LUCENE-3454 where Shai noted this inconsistency.
> IR.reopen sounds like an unconditional operation, which has trapped users in 
> the past into always closing the old reader instead of only closing it if the 
> returned reader is new.
> I think this hidden maybe-ness is trappy and we should rename it 
> (maybeReopen?  reopenIfNeeded?).
> In addition, instead of returning "this" when the reopen didn't happen, I 
> think we should return null to enforce proper usage of the maybe-ness of this 
> API.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to