[ 
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]

Reply via email to