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

Robert Ragno commented on LUCENE-3067:
--------------------------------------

I believe that this is the same issue as later discovered in LUCENE-3583.
                
> Lucene test cases do not properly close input and output instances
> ------------------------------------------------------------------
>
>                 Key: LUCENE-3067
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3067
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: general/build, general/test
>    Affects Versions: 3.1, 4.0
>            Reporter: Robert Ragno
>            Priority: Minor
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> The Lucene tests do not take care to close all file handles. Unless I am 
> missing something, every single instance of Directory, IndexReader, 
> IndexWriter, IndexSearcher, TermPositions, etc. should be wrapped with a 
> try-finally pattern, such that the instance is always closed. Not doing so 
> risks leaving files open, depending on the GC behavior. I believe this causes 
> tests to fail with a "could not delete" exception, inconsistently. I at least 
> observe this on a fast machine with Windows, where deletion is a little more 
> sensitive to open handles. It seems dangerous and undesirable, anyway (again, 
> unless I am missing something). I don't know of another pattern in Java that 
> would actually be safe.
> Some of these objects may just happen to be safe to let dangle in the wind, 
> until the GC reaps, but by the contracts that really can't be allowed. The 
> close methods need to be called to release resources.
> Fixing this *appears* to alleviate the test failures, but it is hard to tell 
> due to the nondeterministic behavior. I am reluctant to make up the whole 
> patch if this is inaccurate - it is somewhat tedious. The classes involved 
> can be instrumented to expose this problem. (In particular, I would imagine 
> that the finalizer should never be reached without the close() methods being 
> previously invoked.)

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