diff options
Diffstat (limited to 'java/src/IceInternal/Connection.java')
-rw-r--r-- | java/src/IceInternal/Connection.java | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/java/src/IceInternal/Connection.java b/java/src/IceInternal/Connection.java index c37d3616104..148845c70c3 100644 --- a/java/src/IceInternal/Connection.java +++ b/java/src/IceInternal/Connection.java @@ -444,6 +444,11 @@ public final class Connection extends EventHandler { try { + if(--_dispatchCount == 0) + { + notifyAll(); + } + if(_state == StateClosed) { return; @@ -462,11 +467,6 @@ public final class Connection extends EventHandler TraceUtil.traceReply("sending reply", os, _logger, _traceLevels); _transceiver.write(os, _endpoint.timeout()); - if(--_dispatchCount == 0) - { - notifyAll(); - } - if(_state == StateClosing && _dispatchCount == 0) { initiateShutdown(); @@ -483,11 +483,6 @@ public final class Connection extends EventHandler { try { - if(_state == StateClosed) - { - return; - } - if(--_dispatchCount == 0) { notifyAll(); @@ -977,7 +972,6 @@ public final class Connection extends EventHandler } unregisterWithPool(); destroyIncomingCache(); - _dispatchCount = 0; break; } } |