summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/BatchOutgoing.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/BatchOutgoing.java')
-rw-r--r--java/src/IceInternal/BatchOutgoing.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/java/src/IceInternal/BatchOutgoing.java b/java/src/IceInternal/BatchOutgoing.java
index 8dfeefcf49d..69bb30285a5 100644
--- a/java/src/IceInternal/BatchOutgoing.java
+++ b/java/src/IceInternal/BatchOutgoing.java
@@ -53,11 +53,6 @@ public final class BatchOutgoing implements OutgoingMessageCallback
}
}
- if(_remoteObserver != null)
- {
- _remoteObserver.detach();
- _remoteObserver = null;
- }
if(_exception != null)
{
throw _exception;
@@ -81,11 +76,22 @@ public final class BatchOutgoing implements OutgoingMessageCallback
{
_sent = true;
}
+ if(_remoteObserver != null)
+ {
+ _remoteObserver.detach();
+ _remoteObserver = null;
+ }
}
public synchronized void
finished(Ice.LocalException ex, boolean sent)
{
+ if(_remoteObserver != null)
+ {
+ _remoteObserver.failed(ex.ice_name());
+ _remoteObserver.detach();
+ _remoteObserver = null;
+ }
_exception = ex;
notify();
}