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

Uwe Schindler commented on LUCENE-6225:
---------------------------------------

According to "java.io.Closeable" docs, closing should not throw exceptions 
because multiple closes are allowed (so if it implicitely closed by root 
object, an additional call to clone's close should not fail).

The comment means: If you access the cloned IndexInput after closing the 
original the "readXXX" methods will throw AlreadyClosedException. For clones. 
the close() method is a noop, that is intended.

> Clarify documentation of clone() in IndexInput
> ----------------------------------------------
>
>                 Key: LUCENE-6225
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6225
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Dawid Weiss
>            Assignee: Dawid Weiss
>            Priority: Minor
>             Fix For: Trunk
>
>
> Here is a snippet from IndexInput's documentation:
> {code}
> The original instance must take care that cloned instances throw 
> AlreadyClosedException when the original one is closed.
> {code}
> But concrete implementations don't throw this AlreadyClosedException (this 
> would break the contract on Closeable). For example, see NIOFSDirectory:
> {code}
>     public void close() throws IOException {
>       if (!isClone) {
>         channel.close();
>       }
>     }
> {code}
> What trapped me was that the abstract class IndexInput overrides the default 
> implementation of clone(), but doesn't do anything useful... I guess you 
> could make it final and provide the tracking for cloned instances in this 
> class rather than reimplementing it everywhere else (isCloned() would be a 
> superclass method then too). Thoughts?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to