diff options
author | Benoit Foucher <benoit@zeroc.com> | 2014-10-23 18:42:07 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2014-10-24 10:42:14 +0200 |
commit | b3d7e5338a0490fe482fa1ffdf1e0f711661762c (patch) | |
tree | ccbcf755137da53e26a18e671555bb788ab7877d /java/src | |
parent | Fixed ICE-5452: hold test hang (diff) | |
download | ice-b3d7e5338a0490fe482fa1ffdf1e0f711661762c.tar.bz2 ice-b3d7e5338a0490fe482fa1ffdf1e0f711661762c.tar.xz ice-b3d7e5338a0490fe482fa1ffdf1e0f711661762c.zip |
Fixed ICE-5753: CancelledKeyException in Java selector
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Ice/src/main/java/IceInternal/Selector.java | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/java/src/Ice/src/main/java/IceInternal/Selector.java b/java/src/Ice/src/main/java/IceInternal/Selector.java index 03e683420ba..c05660af7be 100644 --- a/java/src/Ice/src/main/java/IceInternal/Selector.java +++ b/java/src/Ice/src/main/java/IceInternal/Selector.java @@ -97,17 +97,13 @@ public final class Selector boolean finish(EventHandler handler, boolean closeNow) { - if(handler._registered != 0) + handler._registered = 0; + if(handler._key != null) { - if(handler._key != null) - { - handler._key.cancel(); - handler._key = null; - } - - update(handler, handler._registered, SocketOperation.None); - _changes.remove(handler); + handler._key.cancel(); + handler._key = null; } + _changes.remove(handler); return closeNow; } |