[
https://issues.apache.org/jira/browse/LUCENE-4165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13401426#comment-13401426
]
Torsten Krah commented on LUCENE-4165:
--------------------------------------
Last 2 cents about the misunderstanding:
Doc says: "Closes the stream and releases any system resources associated with
it.".
May be read like this:
1. "it" may actually mean the stream here -> "Closes the stream and releases
any system resources associated with the stream."
2. "it" just meaning the object (reader) itself -> "Closes the stream and
releases any system resources associated with the reader."
Both is possible (is it?) and to me 2. would be more common, because @ variant
1. you do not know, if "close" on the stream does really release any system
resources (this is up to the input streams close method, e.g. take the
CloseShieldInputStream.) - so if 1. should be the only one meaning of the docs,
they are promising things, which they can't enforce ;-).
But i guess i have to look at english grammer again (long long ago ...) - maybe
this is really clear here how it must be understand - if 1. is the only
possible one from a language perspective one, than it should imho read more
like this:
"Does call close on the Stream." - not more, because you do not know if any
system resources are freed; this should be documented at the close() method of
the actual InputStream documentation used.
Back to topic: I'll provide those patches asap.
> HunspellDictionary - AffixFile Reader closed, Dictionary Readers left unclosed
> ------------------------------------------------------------------------------
>
> Key: LUCENE-4165
> URL: https://issues.apache.org/jira/browse/LUCENE-4165
> Project: Lucene - Java
> Issue Type: Bug
> Components: modules/analysis
> Affects Versions: 3.6
> Environment: Linux, Java 1.6
> Reporter: Torsten Krah
> Priority: Minor
> Attachments: lucene_36.patch, lucene_trunk.patch
>
>
> The HunspellDictionary takes an InputStream for affix file and a List of
> Streams for dictionaries.
> Javadoc is not clear about i have to close those stream myself or the
> Dictionary constructor does this already.
> Looking at the code, at least reader.close() is called when the affix file is
> read via readAffixFile() method (although closing streams is not done in a
> finally block - so the constructor may fail to do so).
> The readDictionaryFile() method does miss the call to close the reader in
> contrast to readAffixFile().
> So the question here is - have i have to close the streams myself after
> instantiating the dictionary?
> Or is the close call only missing for the dictionary streams?
> Either way, please add the close calls in a safe manner or clarify javadoc so
> i have to do this myself.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
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]