diff options
Diffstat (limited to 'java/src/Ice/AsyncResult.java')
-rw-r--r-- | java/src/Ice/AsyncResult.java | 28 |
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; } |