[ https://issues.apache.org/jira/browse/LUCENE-6120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14257113#comment-14257113 ]
ASF subversion and git services commented on LUCENE-6120: --------------------------------------------------------- Commit 1647600 from [~rcmuir] in branch 'dev/branches/branch_5x' [ https://svn.apache.org/r1647600 ] LUCENE-6120: Fix MockDirectoryWrapper close() handling > how should MockIndexOutputWrapper.close handle exceptions in delegate.close > --------------------------------------------------------------------------- > > Key: LUCENE-6120 > URL: https://issues.apache.org/jira/browse/LUCENE-6120 > Project: Lucene - Core > Issue Type: Bug > Components: core/store > Reporter: Michael McCandless > Priority: Minor > Fix For: 5.0, Trunk > > Attachments: LUCENE-6120.patch > > > Chasing a tricking Elasticsearch test failure, it came down to the > delegate.close throwing an exception (ClosedByInterruptException, > disturbingly, in this case), causing MockIndexOutputWrapper.close to fail to > remove that IO from MDW's map. > The question is, what should we do here, when delegate.close throws an > exception? Is the delegate in fact closed, even when it throws an exception? > > Java8's docs on java.io.Closeable say this: > As noted in AutoCloseable.close(), cases where the close may fail require > careful attention. It is strongly advised to relinquish the underlying > resources and to internally mark the Closeable as closed, prior to throwing > the IOException. > And our OutputStreamIndexOutput is careful about this (flushes, then closes > in a try-with-resources). > So, I think MDW should be fixed to mark the IO as closed even if > delegate.close throws an exception... -- 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