You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Michael McCandless (JIRA)" <ji...@apache.org> on 2013/01/01 13:06:12 UTC
[jira] [Commented] (LUCENE-4649) kill ThreadInterruptedException
[ https://issues.apache.org/jira/browse/LUCENE-4649?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13541625#comment-13541625 ]
Michael McCandless commented on LUCENE-4649:
--------------------------------------------
OK I see, so the big problem is we are throwing our own exc (ThreadInterruptedException) but *failing* to set the interrupt bit? Ie this is a violation of the protocol (we can only clear the interrupt status if we throw the true, checked InterruptedException). I agree with that.
But, I don't see why we should pretend that you hit an IOException when in fact we were interrupted? That seems worse than throwing ThreadInterruptedExc.
> kill ThreadInterruptedException
> -------------------------------
>
> Key: LUCENE-4649
> URL: https://issues.apache.org/jira/browse/LUCENE-4649
> Project: Lucene - Core
> Issue Type: Bug
> Reporter: Robert Muir
>
> the way we currently do this is bogus.
> For example in FSDirectory's fsync, i think we should instead:
> {noformat}
> } catch (InterruptedException ie) {
> - throw new ThreadInterruptedException(ie);
> + Thread.currentThread().interrupt(); // restore status
> + IOException e = new java.io.InterruptedIOException("fsync() interrupted");
> + e.initCause(ie);
> + throw e;
> {noformat}
> and crazy code in IndexWriter etc that catches ThreadInterruptedExc just to restore status should be removed.
> Instead the guy doing the catch (InterruptedException) should do the right thing.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org