diff options
Diffstat (limited to 'java/src/IceInternal/CollocatedRequestHandler.java')
-rw-r--r-- | java/src/IceInternal/CollocatedRequestHandler.java | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/java/src/IceInternal/CollocatedRequestHandler.java b/java/src/IceInternal/CollocatedRequestHandler.java index 1d97dc9a8d6..3c94e5d93a8 100644 --- a/java/src/IceInternal/CollocatedRequestHandler.java +++ b/java/src/IceInternal/CollocatedRequestHandler.java @@ -227,16 +227,12 @@ public class CollocatedRequestHandler implements RequestHandler, ResponseHandler TraceUtil.traceRecv(os, _logger, _traceLevels); } - outAsync = _asyncRequests.get(requestId); - if(outAsync != null) - { - _asyncRequests.remove(requestId); - } + outAsync = _asyncRequests.remove(requestId); } - if(outAsync != null) + if(outAsync != null && outAsync.finished(os)) { - outAsync.finished(os); + outAsync.invokeCompleted(); } _adapter.decDirectCount(); } @@ -500,13 +496,8 @@ public class CollocatedRequestHandler implements RequestHandler, ResponseHandler OutgoingAsync outAsync = null; synchronized(this) { - outAsync = _asyncRequests.get(requestId); - if(outAsync != null) - { - _asyncRequests.remove(requestId); - } + outAsync = _asyncRequests.remove(requestId); } - if(outAsync != null) { outAsync.finished(ex); |