diff options
Diffstat (limited to 'java/src/IceInternal/CollocatedRequestHandler.java')
-rw-r--r-- | java/src/IceInternal/CollocatedRequestHandler.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/java/src/IceInternal/CollocatedRequestHandler.java b/java/src/IceInternal/CollocatedRequestHandler.java index 48d7bfa5b7d..e3f5f045f58 100644 --- a/java/src/IceInternal/CollocatedRequestHandler.java +++ b/java/src/IceInternal/CollocatedRequestHandler.java @@ -311,6 +311,8 @@ public class CollocatedRequestHandler implements RequestHandler, ResponseHandler { synchronized(this) { + outAsync.cancelable(this); // This will throw if the request is canceled + if(_response) { requestId = ++_requestId; @@ -320,7 +322,6 @@ public class CollocatedRequestHandler implements RequestHandler, ResponseHandler { _sendAsyncRequests.put(outAsync, requestId); } - outAsync.cancelable(this); } } @@ -366,10 +367,11 @@ public class CollocatedRequestHandler implements RequestHandler, ResponseHandler invokeNum = _batchRequestNum; if(_batchRequestNum > 0) { + outAsync.cancelable(this); // This will throw if the request is canceled + if(_reference.getInstance().queueRequests() || _reference.getInvocationTimeout() > 0) { _sendAsyncRequests.put(outAsync, 0); - outAsync.cancelable(this); } assert(!_batchStream.isEmpty()); |