diff options
author | Benoit Foucher <benoit@zeroc.com> | 2013-09-09 19:12:28 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2013-09-09 19:12:28 +0200 |
commit | 8a0d1c7e34d8bd18bd85666cce94403a5158975c (patch) | |
tree | 36050a818282c0a92ee88a6ef28354e186c5aebe /java/src/IceInternal/InvocationObserverI.java | |
parent | Test scripts improvements (diff) | |
download | ice-8a0d1c7e34d8bd18bd85666cce94403a5158975c.tar.bz2 ice-8a0d1c7e34d8bd18bd85666cce94403a5158975c.tar.xz ice-8a0d1c7e34d8bd18bd85666cce94403a5158975c.zip |
Fixed ICE-5196: allow setting an observer with IceMX enabled
Diffstat (limited to 'java/src/IceInternal/InvocationObserverI.java')
-rw-r--r-- | java/src/IceInternal/InvocationObserverI.java | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/java/src/IceInternal/InvocationObserverI.java b/java/src/IceInternal/InvocationObserverI.java index c36b8a581c3..dd98db9df23 100644 --- a/java/src/IceInternal/InvocationObserverI.java +++ b/java/src/IceInternal/InvocationObserverI.java @@ -11,7 +11,8 @@ package IceInternal; import IceMX.*; -public class InvocationObserverI extends IceMX.Observer<IceMX.InvocationMetrics> +public class InvocationObserverI + extends IceMX.ObserverWithDelegate<IceMX.InvocationMetrics, Ice.Instrumentation.InvocationObserver> implements Ice.Instrumentation.InvocationObserver { static public final class RemoteInvocationHelper extends MetricsHelper<RemoteMetrics> @@ -117,21 +118,35 @@ public class InvocationObserverI extends IceMX.Observer<IceMX.InvocationMetrics> userException() { forEach(_userException); + if(_delegate != null) + { + _delegate.userException(); + } } public void retried() { forEach(_incrementRetry); + if(_delegate != null) + { + _delegate.retried(); + } } public Ice.Instrumentation.RemoteObserver getRemoteObserver(Ice.ConnectionInfo con, Ice.Endpoint edpt, int requestId, int sz) { + Ice.Instrumentation.RemoteObserver delegate = null; + if(_delegate != null) + { + delegate = _delegate.getRemoteObserver(con, edpt, requestId, sz); + } return (Ice.Instrumentation.RemoteObserver)getObserver("Remote", new RemoteInvocationHelper(con, edpt, requestId, sz), RemoteMetrics.class, - RemoteObserverI.class); + RemoteObserverI.class, + delegate); } final MetricsUpdate<InvocationMetrics> _incrementRetry = new MetricsUpdate<InvocationMetrics>() |