summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/BatchOutgoing.java
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-10-10 16:00:58 +0200
committerBenoit Foucher <benoit@zeroc.com>2012-10-10 16:00:58 +0200
commit8bcfc9e4a8a1de3d72e30ffc6f3c9d72a8d3f0e4 (patch)
tree1cdcd88fccb57f88d2b47cd1757b4d43bc05be4b /java/src/IceInternal/BatchOutgoing.java
parentAdded IceGridGUI IceStorm metrics (diff)
downloadice-8bcfc9e4a8a1de3d72e30ffc6f3c9d72a8d3f0e4.tar.bz2
ice-8bcfc9e4a8a1de3d72e30ffc6f3c9d72a8d3f0e4.tar.xz
ice-8bcfc9e4a8a1de3d72e30ffc6f3c9d72a8d3f0e4.zip
Improved tracing of failures, user exceptions are now tracked
with a userException member.
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();
}