Dawid Weiss created LUCENE-6225:
-----------------------------------
Summary: Clarify documentation of clone() in IndexOutput,
IndexInput
Key: LUCENE-6225
URL: https://issues.apache.org/jira/browse/LUCENE-6225
Project: Lucene - Core
Issue Type: Improvement
Reporter: 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: [email protected]
For additional commands, e-mail: [email protected]