summaryrefslogtreecommitdiff
path: root/java/src/Ice/AsyncResult.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/Ice/AsyncResult.java')
-rw-r--r--java/src/Ice/AsyncResult.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/java/src/Ice/AsyncResult.java b/java/src/Ice/AsyncResult.java
index 8450ccf1ffa..e70aac96a0b 100644
--- a/java/src/Ice/AsyncResult.java
+++ b/java/src/Ice/AsyncResult.java
@@ -295,6 +295,12 @@ public class AsyncResult
__error(exc);
}
}
+
+ if(_observer != null)
+ {
+ _observer.detach();
+ _observer = null;
+ }
}
protected final void __sentInternal()
@@ -325,6 +331,19 @@ public class AsyncResult
}
}
+ public void
+ __attachRemoteObserver(Ice.ConnectionInfo info, Ice.Endpoint endpt)
+ {
+ if(_observer != null)
+ {
+ _remoteObserver = _observer.getRemoteObserver(info, endpt);
+ if(_remoteObserver != null)
+ {
+ _remoteObserver.attach();
+ }
+ }
+ }
+
public final void __sentAsync()
{
//
@@ -420,6 +439,12 @@ public class AsyncResult
__error(exc);
}
}
+
+ if(_observer != null)
+ {
+ _observer.detach();
+ _observer = null;
+ }
}
protected final void __warning(RuntimeException ex)
@@ -454,5 +479,8 @@ public class AsyncResult
protected boolean _sentSynchronously;
protected LocalException _exception;
+ protected Ice.Instrumentation.InvocationObserver _observer;
+ protected Ice.Instrumentation.Observer _remoteObserver;
+
private IceInternal.CallbackBase _callback;
}