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/Instance.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/Instance.java')
-rw-r--r-- | java/src/IceInternal/Instance.java | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/java/src/IceInternal/Instance.java b/java/src/IceInternal/Instance.java index 03fbc58c434..a837018cd6a 100644 --- a/java/src/IceInternal/Instance.java +++ b/java/src/IceInternal/Instance.java @@ -531,6 +531,13 @@ public final class Instance return result; } + public Ice.Instrumentation.CommunicatorObserver + getObserver() + { + return _observer; // Immutable + } + + public synchronized void setDefaultLocator(Ice.LocatorPrx locator) { @@ -817,18 +824,20 @@ public final class Instance // Setup the communicator observer only if the user didn't already set an // Ice observer resolver and if the admininistrative endpoints are set. // - if(_initData.observer == null && - (_adminFacetFilter.isEmpty() || _adminFacetFilter.contains("Metrics")) && + if((_adminFacetFilter.isEmpty() || _adminFacetFilter.contains("Metrics")) && _initData.properties.getProperty("Ice.Admin.Endpoints").length() > 0) { - CommunicatorObserverI observer = new CommunicatorObserverI(admin); - _initData.observer = observer; + _observer = new CommunicatorObserverI(admin, _initData.observer); // // Make sure the admin plugin receives property updates. // props.addUpdateCallback(admin); } + else + { + _observer = _initData.observer; + } } catch(Ice.LocalException ex) { @@ -882,9 +891,9 @@ public final class Instance // // Set observer updater // - if(_initData.observer != null) + if(_observer != null) { - _initData.observer.setObserverUpdater(new ObserverUpdaterI(this)); + _observer.setObserverUpdater(new ObserverUpdaterI(this)); } // @@ -1235,6 +1244,7 @@ public final class Instance private final int _clientACM; // Immutable, not reset by destroy(). private final int _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; |