summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/Outgoing.java
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2014-07-15 10:22:40 +0200
committerBenoit Foucher <benoit@zeroc.com>2014-07-15 10:22:40 +0200
commit710a9221852d6c92b1727a429a33b38f1f949352 (patch)
tree6bc9ac9ed04a6b1858d8fc30282d4f18ef04abbb /java/src/IceInternal/Outgoing.java
parent- Fix for ICE-5578 - Python build failure (diff)
downloadice-710a9221852d6c92b1727a429a33b38f1f949352.tar.bz2
ice-710a9221852d6c92b1727a429a33b38f1f949352.tar.xz
ice-710a9221852d6c92b1727a429a33b38f1f949352.zip
Fixed collocation optimization to use the dispatcher, minor test fixes
Diffstat (limited to 'java/src/IceInternal/Outgoing.java')
-rw-r--r--java/src/IceInternal/Outgoing.java20
1 files changed, 17 insertions, 3 deletions
diff --git a/java/src/IceInternal/Outgoing.java b/java/src/IceInternal/Outgoing.java
index 3a14e835110..69d7b3d6cad 100644
--- a/java/src/IceInternal/Outgoing.java
+++ b/java/src/IceInternal/Outgoing.java
@@ -415,9 +415,24 @@ public final class Outgoing implements OutgoingMessageCallback
}
public synchronized void
- finished(Ice.Exception ex, boolean sent)
+ finished(Ice.Exception ex)
{
- assert(_state <= StateInProgress);
+ //assert(_state <= StateInProgress);
+ if(_state > StateInProgress)
+ {
+ //
+ // Response was already received but message
+ // didn't get removed first from the connection
+ // send message queue so it's possible we can be
+ // notified of failures. In this case, ignore the
+ // failure and assume the outgoing has been sent.
+ //
+ assert(_state != StateFailed);
+ _sent = true;
+ notify();
+ return;
+ }
+
if(_childObserver != null)
{
_childObserver.failed(ex.ice_name());
@@ -426,7 +441,6 @@ public final class Outgoing implements OutgoingMessageCallback
}
_state = StateFailed;
_exception = ex;
- _sent = sent;
notify();
}