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

ASF GitHub Bot commented on CURATOR-375:
----------------------------------------

GitHub user thecoop opened a pull request:

    https://github.com/apache/curator/pull/186

    [CURATOR-375] - fix thread interruption being reported twice

    In some classes, thread interruption was being reported twice - by setting 
the thread interrupted flag and re-throwing the `InterruptedException` - this 
made it look like the thread was actually interrupted twice, and generally 
causes spurious interruption - even if the `InterruptedException` is handled, 
the thread interruption status is still set, meaning the next async operation 
that happens will also fail.
    
    Affected classes:
    - `ConnectionState` - `closeAndClear` can never throw 
`InterruptedException` canyway, so remove the check completely
    - `PersistentNode` - as mentioned in the docs for `AutoCloseable`, close 
methods shouldn't throw InterruptedException anyway. The delete operation is 
guaranteed, so even if `deleteNode` throws an exception, the node will still 
(probably) be deleted
    - `CreateBuilderImpl`/`DeleteBuilderImpl` - the exception is being 
re-thrown, so don't need to re-set the interrupt status

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/thecoop/curator CURATOR-375

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/curator/pull/186.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #186
    
----
commit 81edd7e07a1fae2412c3e42e74a31b992aa72669
Author: Simon Cooper <[email protected]>
Date:   2017-01-05T14:08:17Z

    CURATOR-375 - fix thread interruption being reported using thread 
interrupted flag and an exception at the same time

----


> FIx thread interruption being reported twice
> --------------------------------------------
>
>                 Key: CURATOR-375
>                 URL: https://issues.apache.org/jira/browse/CURATOR-375
>             Project: Apache Curator
>          Issue Type: Bug
>    Affects Versions: 2.11.1
>            Reporter: Simon Cooper
>            Assignee: Jordan Zimmerman
>
> When a curator operation thread is interrupted, some classes 
> ({{PersistentNode}} {{ConnectionState}} primarily) report the interruption in 
> two ways at the same time - by re-marking the thread interruption status 
> *and* throwing {{InterruptedException}} - this makes it look like the thread 
> has been interrupted twice, rather than once.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to