summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2014-09-12 13:24:38 +0200
committerBenoit Foucher <benoit@zeroc.com>2014-09-12 13:24:38 +0200
commitabeebf67ba35156606bbaabf073b496900f836cf (patch)
tree430212c34a1a1d4922fa11426e9fbd537fb98e52 /java/src
parentFixed dependencies (diff)
downloadice-abeebf67ba35156606bbaabf073b496900f836cf.tar.bz2
ice-abeebf67ba35156606bbaabf073b496900f836cf.tar.xz
ice-abeebf67ba35156606bbaabf073b496900f836cf.zip
Fixed ICE-5620: metrics admin creation in IceBox, fixed bug where timer wasn't instrumented
Diffstat (limited to 'java/src')
-rw-r--r--java/src/Ice/CommunicatorI.java2
-rw-r--r--java/src/Ice/ConnectionI.java16
-rw-r--r--java/src/IceBox/ServiceManagerI.java51
-rw-r--r--java/src/IceInternal/CommunicatorObserverI.java26
-rw-r--r--java/src/IceInternal/EndpointHostResolver.java38
-rw-r--r--java/src/IceInternal/Incoming.java2
-rw-r--r--java/src/IceInternal/Instance.java173
-rw-r--r--java/src/IceInternal/MetricsAdminI.java8
-rw-r--r--java/src/IceInternal/ObserverHelper.java5
-rw-r--r--java/src/IceInternal/OutgoingConnectionFactory.java2
-rw-r--r--java/src/IceInternal/ThreadPool.java2
11 files changed, 194 insertions, 131 deletions
diff --git a/java/src/Ice/CommunicatorI.java b/java/src/Ice/CommunicatorI.java
index 3f0dcbebe8f..0e06c1959e5 100644
--- a/java/src/Ice/CommunicatorI.java
+++ b/java/src/Ice/CommunicatorI.java
@@ -154,7 +154,7 @@ public final class CommunicatorI implements Communicator
public Ice.Instrumentation.CommunicatorObserver
getObserver()
{
- return _instance.getObserver();
+ return _instance.initializationData().observer;
}
@Override
diff --git a/java/src/Ice/ConnectionI.java b/java/src/Ice/ConnectionI.java
index 29a2bd5543c..cb3383bfb56 100644
--- a/java/src/Ice/ConnectionI.java
+++ b/java/src/Ice/ConnectionI.java
@@ -245,9 +245,11 @@ public final class ConnectionI extends IceInternal.EventHandler implements Conne
return;
}
- assert (_instance.getObserver() != null);
- _observer = _instance.getObserver().getConnectionObserver(initConnectionInfo(), _endpoint,
- toConnectionState(_state), _observer);
+ assert (_instance.initializationData().observer != null);
+ _observer = _instance.initializationData().observer.getConnectionObserver(initConnectionInfo(),
+ _endpoint,
+ toConnectionState(_state),
+ _observer);
if(_observer != null)
{
_observer.attach();
@@ -1881,14 +1883,16 @@ public final class ConnectionI extends IceInternal.EventHandler implements Conne
}
}
- if(_instance.getObserver() != null)
+ if(_instance.initializationData().observer != null)
{
Ice.Instrumentation.ConnectionState oldState = toConnectionState(_state);
Ice.Instrumentation.ConnectionState newState = toConnectionState(state);
if(oldState != newState)
{
- _observer = _instance.getObserver().getConnectionObserver(initConnectionInfo(), _endpoint, newState,
- _observer);
+ _observer = _instance.initializationData().observer.getConnectionObserver(initConnectionInfo(),
+ _endpoint,
+ newState,
+ _observer);
if(_observer != null)
{
_observer.attach();
diff --git a/java/src/IceBox/ServiceManagerI.java b/java/src/IceBox/ServiceManagerI.java
index 1f4cc9210d9..17d789f0fd9 100644
--- a/java/src/IceBox/ServiceManagerI.java
+++ b/java/src/IceBox/ServiceManagerI.java
@@ -354,27 +354,16 @@ public class ServiceManagerI extends _ServiceManagerDisp
}
//
- // If Ice metrics are enabled on the IceBox communicator, we also enable them on the
- // shared communicator.
- //
- IceInternal.MetricsAdminI metricsAdmin = null;
- if(_communicator.getObserver() instanceof IceInternal.CommunicatorObserverI)
+ // If Ice metrics are enabled on the IceBox communicator, we also enable them on
+ // the service communicator.
+ //
+ if(_communicator.findAdminFacet("Metrics") != null &&
+ initData.properties.getProperty("Ice.Admin.Metrics").isEmpty())
{
- metricsAdmin = new IceInternal.MetricsAdminI(initData.properties, Ice.Util.getProcessLogger());
- initData.observer = new IceInternal.CommunicatorObserverI(metricsAdmin);
+ initData.properties.setProperty("Ice.Admin.Metrics", "1");
}
_sharedCommunicator = Ice.Util.initialize(initData);
-
- //
- // Ensure the metrics admin plugin uses the same property set as the
- // communicator. This is necessary to correctly deal with runtime
- // property updates.
- //
- if(metricsAdmin != null)
- {
- metricsAdmin.setProperties(_sharedCommunicator.getProperties());
- }
}
for(StartServiceInfo s : servicesInfo)
@@ -564,16 +553,12 @@ public class ServiceManagerI extends _ServiceManagerDisp
// commnunicator property set.
//
Ice.Communicator communicator;
- IceInternal.MetricsAdminI metricsAdmin = null;
+ Ice.Object metricsAdmin = null;
if(_communicator.getProperties().getPropertyAsInt("IceBox.UseSharedCommunicator." + service) > 0)
{
assert(_sharedCommunicator != null);
communicator = _sharedCommunicator;
- if(communicator.getObserver() instanceof IceInternal.CommunicatorObserverI)
- {
- IceInternal.CommunicatorObserverI o = (IceInternal.CommunicatorObserverI)communicator.getObserver();
- metricsAdmin = o.getMetricsAdmin();
- }
+ metricsAdmin = _sharedCommunicator.findAdminFacet("Metrics");
}
else
{
@@ -615,11 +600,11 @@ public class ServiceManagerI extends _ServiceManagerDisp
//
// If Ice metrics are enabled on the IceBox communicator, we also enable them on
// the service communicator.
- //
- if(_communicator.getObserver() instanceof IceInternal.CommunicatorObserverI)
+ //
+ if(_communicator.findAdminFacet("Metrics") != null &&
+ initData.properties.getProperty("Ice.Admin.Metrics").isEmpty())
{
- metricsAdmin = new IceInternal.MetricsAdminI(initData.properties, initData.logger);
- initData.observer = new IceInternal.CommunicatorObserverI(metricsAdmin);
+ initData.properties.setProperty("Ice.Admin.Metrics", "1");
}
//
@@ -630,15 +615,7 @@ public class ServiceManagerI extends _ServiceManagerDisp
info.args = serviceArgs.value;
communicator = info.communicator;
- //
- // Ensure the metrics admin plugin uses the same property set as the
- // communicator. This is necessary to correctly deal with runtime
- // property updates.
- //
- if(metricsAdmin != null)
- {
- metricsAdmin.setProperties(communicator.getProperties());
- }
+ metricsAdmin = communicator.findAdminFacet("Metrics");
}
catch(Throwable ex)
{
@@ -672,7 +649,7 @@ public class ServiceManagerI extends _ServiceManagerDisp
_communicator.addAdminFacet(metricsAdmin, "IceBox.Service." + info.name + ".Metrics");
// Ensure the metrics admin facet is notified of property updates.
- propAdmin.addUpdateCallback(metricsAdmin);
+ propAdmin.addUpdateCallback((Ice.PropertiesAdminUpdateCallback)metricsAdmin);
}
//
diff --git a/java/src/IceInternal/CommunicatorObserverI.java b/java/src/IceInternal/CommunicatorObserverI.java
index 12360515ef4..76e7e2b7d6c 100644
--- a/java/src/IceInternal/CommunicatorObserverI.java
+++ b/java/src/IceInternal/CommunicatorObserverI.java
@@ -593,29 +593,23 @@ public class CommunicatorObserverI implements Ice.Instrumentation.CommunicatorOb
};
public
- CommunicatorObserverI(IceInternal.MetricsAdminI metrics)
+ CommunicatorObserverI(Ice.InitializationData initData)
{
- this(metrics, null);
- }
-
- public
- CommunicatorObserverI(IceInternal.MetricsAdminI metrics, Ice.Instrumentation.CommunicatorObserver delegate)
- {
- _metrics = metrics;
- _delegate = delegate;
+ _metrics = new MetricsAdminI(initData.properties, initData.logger);
+ _delegate = initData.observer;
_connections = new ObserverFactoryWithDelegate<ConnectionMetrics, ConnectionObserverI,
- Ice.Instrumentation.ConnectionObserver>(metrics, "Connection", ConnectionMetrics.class);
+ Ice.Instrumentation.ConnectionObserver>(_metrics, "Connection", ConnectionMetrics.class);
_dispatch = new ObserverFactoryWithDelegate<DispatchMetrics, DispatchObserverI,
- Ice.Instrumentation.DispatchObserver>(metrics, "Dispatch", DispatchMetrics.class);
+ Ice.Instrumentation.DispatchObserver>(_metrics, "Dispatch", DispatchMetrics.class);
_invocations = new ObserverFactoryWithDelegate<InvocationMetrics, InvocationObserverI,
- Ice.Instrumentation.InvocationObserver>(metrics, "Invocation", InvocationMetrics.class);
+ Ice.Instrumentation.InvocationObserver>(_metrics, "Invocation", InvocationMetrics.class);
_threads = new ObserverFactoryWithDelegate<ThreadMetrics, ThreadObserverI,
- Ice.Instrumentation.ThreadObserver>(metrics, "Thread", ThreadMetrics.class);
+ Ice.Instrumentation.ThreadObserver>(_metrics, "Thread", ThreadMetrics.class);
_connects = new ObserverFactoryWithDelegate<Metrics, ObserverWithDelegateI,
- Ice.Instrumentation.Observer>(metrics, "ConnectionEstablishment", Metrics.class);
+ Ice.Instrumentation.Observer>(_metrics, "ConnectionEstablishment", Metrics.class);
_endpointLookups = new ObserverFactoryWithDelegate<Metrics, ObserverWithDelegateI,
- Ice.Instrumentation.Observer>(metrics, "EndpointLookup", Metrics.class);
+ Ice.Instrumentation.Observer>(_metrics, "EndpointLookup", Metrics.class);
try
{
@@ -811,7 +805,7 @@ public class CommunicatorObserverI implements Ice.Instrumentation.CommunicatorOb
}
}
- public IceInternal.MetricsAdminI getMetricsAdmin()
+ public IceInternal.MetricsAdminI getFacet()
{
return _metrics;
}
diff --git a/java/src/IceInternal/EndpointHostResolver.java b/java/src/IceInternal/EndpointHostResolver.java
index 42e845b1762..896eb21b8a1 100644
--- a/java/src/IceInternal/EndpointHostResolver.java
+++ b/java/src/IceInternal/EndpointHostResolver.java
@@ -48,7 +48,7 @@ class EndpointHostResolver
}
}
- Ice.Instrumentation.CommunicatorObserver obsv = _instance.getObserver();
+ Ice.Instrumentation.CommunicatorObserver obsv = _instance.initializationData().observer;
Ice.Instrumentation.Observer observer = null;
if(obsv != null)
{
@@ -142,14 +142,14 @@ class EndpointHostResolver
}
}
- try
+ if(threadObserver != null)
{
- if(threadObserver != null)
- {
- threadObserver.stateChanged(Ice.Instrumentation.ThreadState.ThreadStateIdle,
- Ice.Instrumentation.ThreadState.ThreadStateInUseForOther);
- }
+ threadObserver.stateChanged(Ice.Instrumentation.ThreadState.ThreadStateIdle,
+ Ice.Instrumentation.ThreadState.ThreadStateInUseForOther);
+ }
+ try
+ {
int protocol = _protocol;
NetworkProxy networkProxy = _instance.networkProxy();
if(networkProxy != null)
@@ -167,33 +167,27 @@ class EndpointHostResolver
selType,
_preferIPv6,
true),
- networkProxy));
-
- if(threadObserver != null)
- {
- threadObserver.stateChanged(Ice.Instrumentation.ThreadState.ThreadStateInUseForOther,
- Ice.Instrumentation.ThreadState.ThreadStateIdle);
- }
-
+ networkProxy));
+ }
+ catch(Ice.LocalException ex)
+ {
if(observer != null)
{
- observer.detach();
+ observer.failed(ex.ice_name());
}
+ callback.exception(ex);
}
- catch(Ice.LocalException ex)
+ finally
{
if(threadObserver != null)
{
threadObserver.stateChanged(Ice.Instrumentation.ThreadState.ThreadStateInUseForOther,
Ice.Instrumentation.ThreadState.ThreadStateIdle);
}
-
if(observer != null)
{
- observer.failed(ex.ice_name());
observer.detach();
}
- callback.exception(ex);
}
}
});
@@ -230,7 +224,7 @@ class EndpointHostResolver
synchronized void updateObserver()
{
- Ice.Instrumentation.CommunicatorObserver obsv = _instance.getObserver();
+ Ice.Instrumentation.CommunicatorObserver obsv = _instance.initializationData().observer;
if(obsv != null)
{
_observer = obsv.getThreadObserver("Communicator", _threadName,
@@ -246,7 +240,7 @@ class EndpointHostResolver
private Ice.Instrumentation.Observer
getObserver(IPEndpointI endpoint)
{
- Ice.Instrumentation.CommunicatorObserver obsv = _instance.getObserver();
+ Ice.Instrumentation.CommunicatorObserver obsv = _instance.initializationData().observer;
if(obsv != null)
{
return obsv.getEndpointLookupObserver(endpoint);
diff --git a/java/src/IceInternal/Incoming.java b/java/src/IceInternal/Incoming.java
index a9b3faa8b5c..cc9742cd295 100644
--- a/java/src/IceInternal/Incoming.java
+++ b/java/src/IceInternal/Incoming.java
@@ -117,7 +117,7 @@ final public class Incoming extends IncomingBase implements Ice.Request
_current.ctx.put(first, second);
}
- CommunicatorObserver obsv = _instance.getObserver();
+ CommunicatorObserver obsv = _instance.initializationData().observer;
if(obsv != null)
{
// Read the parameter encapsulation size.
diff --git a/java/src/IceInternal/Instance.java b/java/src/IceInternal/Instance.java
index c667a98404d..2146b5f059f 100644
--- a/java/src/IceInternal/Instance.java
+++ b/java/src/IceInternal/Instance.java
@@ -17,6 +17,116 @@ import Ice.CommunicatorDestroyedException;
public final class Instance
{
+ static private class ThreadObserverHelper
+ {
+ ThreadObserverHelper(String threadName)
+ {
+ _threadName = threadName;
+ }
+
+ synchronized public void updateObserver(Ice.Instrumentation.CommunicatorObserver obsv)
+ {
+ assert(obsv != null);
+
+ _observer = obsv.getThreadObserver("Communicator",
+ _threadName,
+ Ice.Instrumentation.ThreadState.ThreadStateIdle,
+ _observer);
+ if(_observer != null)
+ {
+ _observer.attach();
+ }
+ }
+
+ protected void beforeExecute()
+ {
+ _threadObserver = _observer;
+ if(_threadObserver != null)
+ {
+ _threadObserver.stateChanged(Ice.Instrumentation.ThreadState.ThreadStateIdle,
+ Ice.Instrumentation.ThreadState.ThreadStateInUseForOther);
+ }
+ }
+
+ protected void afterExecute()
+ {
+ if(_threadObserver != null)
+ {
+ _threadObserver.stateChanged(Ice.Instrumentation.ThreadState.ThreadStateInUseForOther,
+ Ice.Instrumentation.ThreadState.ThreadStateIdle);
+ _threadObserver = null;
+ }
+ }
+
+ final private String _threadName;
+ //
+ // We use a volatile to avoid synchronization when reading
+ // _observer. Reference assignement is atomic in Java so it
+ // also doesn't need to be synchronized.
+ //
+ private volatile Ice.Instrumentation.ThreadObserver _observer;
+ private Ice.Instrumentation.ThreadObserver _threadObserver;
+ };
+
+ static private class Timer extends java.util.concurrent.ScheduledThreadPoolExecutor
+ {
+ Timer(Ice.Properties props, String threadName)
+ {
+ super(1, Util.createThreadFactory(props, threadName)); // Single thread executor
+ setRemoveOnCancelPolicy(true);
+ setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
+ _observerHelper = new ThreadObserverHelper(threadName);
+ }
+
+ public void updateObserver(Ice.Instrumentation.CommunicatorObserver obsv)
+ {
+ _observerHelper.updateObserver(obsv);
+ }
+
+ @Override
+ protected void beforeExecute(Thread t, Runnable r)
+ {
+ _observerHelper.beforeExecute();
+ }
+
+ @Override
+ protected void afterExecute(Runnable t, Throwable e)
+ {
+ _observerHelper.afterExecute();
+ }
+
+ private final ThreadObserverHelper _observerHelper;
+ };
+
+ static private class QueueExecutor extends java.util.concurrent.ThreadPoolExecutor
+ {
+ QueueExecutor(Ice.Properties props, String threadName)
+ {
+ super(1, 1, 0, TimeUnit.MILLISECONDS, new java.util.concurrent.LinkedBlockingQueue<Runnable>(),
+ Util.createThreadFactory(props, threadName));
+ _observerHelper = new ThreadObserverHelper(threadName);
+ }
+
+ public void updateObserver(Ice.Instrumentation.CommunicatorObserver obsv)
+ {
+ _observerHelper.updateObserver(obsv);
+ }
+
+ @Override
+ protected void beforeExecute(Thread t, Runnable r)
+ {
+ _observerHelper.beforeExecute();
+ }
+
+ @Override
+ protected void afterExecute(Runnable t, Throwable e)
+ {
+ _observerHelper.afterExecute();
+ }
+
+ private final ThreadObserverHelper _observerHelper;
+ };
+
private class ObserverUpdaterI implements Ice.Instrumentation.ObserverUpdater
{
@Override
@@ -505,13 +615,6 @@ public final class Instance
return result;
}
- public Ice.Instrumentation.CommunicatorObserver
- getObserver()
- {
- return _observer; // Immutable
- }
-
-
public synchronized void
setDefaultLocator(Ice.LocatorPrx locator)
{
@@ -809,8 +912,6 @@ public final class Instance
}
PropertiesAdminI propsAdmin = null;
- MetricsAdminI metricsAdmin = null;
-
if(_adminEnabled)
{
String[] facetFilter = _initData.properties.getPropertyAsList("Ice.Admin.Facets");
@@ -821,9 +922,6 @@ public final class Instance
_adminFacets.put("Process", new ProcessI(communicator));
- metricsAdmin = new MetricsAdminI(_initData.properties, _initData.logger);
- _adminFacets.put("Metrics", metricsAdmin);
-
propsAdmin = new PropertiesAdminI("Properties", _initData.properties, _initData.logger);
_adminFacets.put("Properties", propsAdmin);
}
@@ -832,25 +930,26 @@ public final class Instance
// Setup the communicator observer only if the user didn't already set an
// Ice observer resolver and Admin is enabled
//
- if(_adminEnabled && (_adminFacetFilter.isEmpty() || _adminFacetFilter.contains("Metrics")))
+ if((_adminEnabled && (_adminFacetFilter.isEmpty() || _adminFacetFilter.contains("Metrics"))) ||
+ _initData.properties.getPropertyAsInt("Ice.Admin.Metrics") > 0)
{
- _observer = new CommunicatorObserverI(metricsAdmin, _initData.observer);
+ CommunicatorObserverI observer = new CommunicatorObserverI(_initData);
+ _initData.observer = observer;
+ _adminFacets.put("Metrics", observer.getFacet());
//
// Make sure the admin plugin receives property updates.
//
- propsAdmin.addUpdateCallback(metricsAdmin);
- }
- else
- {
- _observer = _initData.observer;
+ if(propsAdmin != null)
+ {
+ propsAdmin.addUpdateCallback(observer.getFacet());
+ }
}
if(_initData.properties.getPropertyAsInt("Ice.BackgroundIO") > 0)
{
- _queueExecutor = Executors.newFixedThreadPool(1,
- Util.createThreadFactory(_initData.properties,
- Util.createThreadName(_initData.properties, "Ice.BackgroundIO")));
+ _queueExecutor = new QueueExecutor(_initData.properties,
+ Util.createThreadName(_initData.properties, "Ice.BackgroundIO"));
}
_cacheMessageBuffers = _initData.properties.getPropertyAsIntWithDefault("Ice.CacheMessageBuffers", 2);
}
@@ -906,9 +1005,9 @@ public final class Instance
//
// Set observer updater
//
- if(_observer != null)
+ if(_initData.observer != null)
{
- _observer.setObserverUpdater(new ObserverUpdaterI());
+ _initData.observer.setObserverUpdater(new ObserverUpdaterI());
}
//
@@ -916,14 +1015,7 @@ public final class Instance
//
try
{
- java.util.concurrent.ScheduledThreadPoolExecutor executor =
- new java.util.concurrent.ScheduledThreadPoolExecutor(1,
- Util.createThreadFactory(_initData.properties,
- Util.createThreadName(_initData.properties, "Ice.Timer")));
-
- executor.setRemoveOnCancelPolicy(true);
- executor.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
- _timer = executor;
+ _timer = new Timer(_initData.properties, Util.createThreadName(_initData.properties, "Ice.Timer"));
}
catch(RuntimeException ex)
{
@@ -1051,9 +1143,9 @@ public final class Instance
_retryQueue.destroy();
}
- if(_observer != null)
+ if(_initData.observer != null)
{
- _observer.setObserverUpdater(null);
+ _initData.observer.setObserverUpdater(null);
}
ThreadPool serverThreadPool = null;
@@ -1234,6 +1326,14 @@ public final class Instance
{
_endpointHostResolver.updateObserver();
}
+ if(_timer != null)
+ {
+ _timer.updateObserver(_initData.observer);
+ }
+ if(_queueExecutor != null)
+ {
+ _queueExecutor.updateObserver(_initData.observer);
+ }
}
catch(Ice.CommunicatorDestroyedException ex)
{
@@ -1405,7 +1505,6 @@ public final class Instance
private final ACMConfig _clientACM; // Immutable, not reset by destroy().
private final ACMConfig _serverACM; // Immutable, not reset by destroy().
private final Ice.ImplicitContextI _implicitContext;
- private final Ice.Instrumentation.CommunicatorObserver _observer;
private RouterManager _routerManager;
private LocatorManager _locatorManager;
private ReferenceFactory _referenceFactory;
@@ -1420,7 +1519,7 @@ public final class Instance
private ThreadPool _serverThreadPool;
private EndpointHostResolver _endpointHostResolver;
private RetryQueue _retryQueue;
- private java.util.concurrent.ScheduledExecutorService _timer;
+ private Timer _timer;
private EndpointFactoryManager _endpointFactoryManager;
private Ice.PluginManager _pluginManager;
@@ -1435,5 +1534,5 @@ public final class Instance
final private boolean _useApplicationClassLoader;
private static boolean _oneOfDone = false;
- private ExecutorService _queueExecutor;
+ private QueueExecutor _queueExecutor;
}
diff --git a/java/src/IceInternal/MetricsAdminI.java b/java/src/IceInternal/MetricsAdminI.java
index ef92f9c0a5f..8f8eec0667f 100644
--- a/java/src/IceInternal/MetricsAdminI.java
+++ b/java/src/IceInternal/MetricsAdminI.java
@@ -329,12 +329,6 @@ public class MetricsAdminI extends IceMX._MetricsAdminDisp implements Ice.Proper
return _logger;
}
- public void
- setProperties(Ice.Properties properties)
- {
- _properties = properties;
- }
-
@Override
public void
updated(java.util.Map<String, String> props)
@@ -403,4 +397,4 @@ public class MetricsAdminI extends IceMX._MetricsAdminDisp implements Ice.Proper
private java.util.Map<String, MetricsViewI> _views = new java.util.HashMap<String, MetricsViewI>();
private java.util.Set<String> _disabledViews = new java.util.HashSet<String>();
-} \ No newline at end of file
+}
diff --git a/java/src/IceInternal/ObserverHelper.java b/java/src/IceInternal/ObserverHelper.java
index 9ad83d5a3d7..bb6edb015c1 100644
--- a/java/src/IceInternal/ObserverHelper.java
+++ b/java/src/IceInternal/ObserverHelper.java
@@ -17,7 +17,7 @@ public final class ObserverHelper
static public InvocationObserver
get(Instance instance, String op)
{
- CommunicatorObserver obsv = instance.getObserver();
+ CommunicatorObserver obsv = instance.initializationData().observer;
if(obsv != null)
{
InvocationObserver observer = obsv.getInvocationObserver(null, op, _emptyContext);
@@ -39,7 +39,8 @@ public final class ObserverHelper
static public InvocationObserver
get(Ice.ObjectPrx proxy, String op, java.util.Map<String, String> context)
{
- CommunicatorObserver obsv = ((Ice.ObjectPrxHelperBase)proxy).__reference().getInstance().getObserver();
+ CommunicatorObserver obsv =
+ ((Ice.ObjectPrxHelperBase)proxy).__reference().getInstance().initializationData().observer;
if(obsv != null)
{
InvocationObserver observer;
diff --git a/java/src/IceInternal/OutgoingConnectionFactory.java b/java/src/IceInternal/OutgoingConnectionFactory.java
index 773d735faff..e2182170ffa 100644
--- a/java/src/IceInternal/OutgoingConnectionFactory.java
+++ b/java/src/IceInternal/OutgoingConnectionFactory.java
@@ -1071,7 +1071,7 @@ public final class OutgoingConnectionFactory
assert(_iter.hasNext());
_current = _iter.next();
- Ice.Instrumentation.CommunicatorObserver obsv = _factory._instance.getObserver();
+ Ice.Instrumentation.CommunicatorObserver obsv = _factory._instance.initializationData().observer;
if(obsv != null)
{
_observer = obsv.getConnectionEstablishmentObserver(_current.endpoint,
diff --git a/java/src/IceInternal/ThreadPool.java b/java/src/IceInternal/ThreadPool.java
index c5c26eea65a..291f2973e3b 100644
--- a/java/src/IceInternal/ThreadPool.java
+++ b/java/src/IceInternal/ThreadPool.java
@@ -778,7 +778,7 @@ public final class ThreadPool
updateObserver()
{
// Must be called with the thread pool mutex locked
- Ice.Instrumentation.CommunicatorObserver obsv = _instance.getObserver();
+ Ice.Instrumentation.CommunicatorObserver obsv = _instance.initializationData().observer;
if(obsv != null)
{
_observer = obsv.getThreadObserver(_prefix, _name, _state, _observer);