diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-09-03 14:40:42 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-09-03 14:40:42 +0200 |
commit | 9c5efa7f3c9049d16e6e1d3e2259a04fcf6812a8 (patch) | |
tree | 1b27e7ae3164dcb3b34efe7ba97303a218f3f555 /java/src/IceInternal/PropertiesAdminI.java | |
parent | Update Metrics tables to use introspection (diff) | |
download | ice-9c5efa7f3c9049d16e6e1d3e2259a04fcf6812a8.tar.bz2 ice-9c5efa7f3c9049d16e6e1d3e2259a04fcf6812a8.tar.xz ice-9c5efa7f3c9049d16e6e1d3e2259a04fcf6812a8.zip |
Bug fixes
Diffstat (limited to 'java/src/IceInternal/PropertiesAdminI.java')
-rw-r--r-- | java/src/IceInternal/PropertiesAdminI.java | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/java/src/IceInternal/PropertiesAdminI.java b/java/src/IceInternal/PropertiesAdminI.java index bb698bcf8ac..59846b5b975 100644 --- a/java/src/IceInternal/PropertiesAdminI.java +++ b/java/src/IceInternal/PropertiesAdminI.java @@ -37,7 +37,7 @@ public class PropertiesAdminI extends Ice._PropertiesAdminDisp implements Ice.Na java.util.Map<String, String> added = new java.util.HashMap<String, String>(); java.util.Map<String, String> changed = new java.util.HashMap<String, String>(); java.util.Map<String, String> removed = new java.util.HashMap<String, String>(); - Ice.PropertiesAdminUpdateCallback callback; + java.util.List<Ice.PropertiesAdminUpdateCallback> callbacks = null; synchronized(this) { @@ -162,7 +162,7 @@ public class PropertiesAdminI extends Ice._PropertiesAdminDisp implements Ice.Na _properties.setProperty(e.getKey(), ""); } - callback = _updateCallback; + callbacks = new java.util.ArrayList<Ice.PropertiesAdminUpdateCallback>(_updateCallbacks); } // @@ -170,31 +170,40 @@ public class PropertiesAdminI extends Ice._PropertiesAdminDisp implements Ice.Na // cb.ice_response(); - if(callback != null) + if(callbacks != null) { java.util.Map<String, String> changes = new java.util.HashMap<String, String>(added); changes.putAll(changed); changes.putAll(removed); - - try - { - callback.updated(changes); - } - catch(RuntimeException ex) + for(Ice.PropertiesAdminUpdateCallback callback : callbacks) { - // Ignore. + try + { + callback.updated(changes); + } + catch(RuntimeException ex) + { + // Ignore. + } } } } public synchronized void - setUpdateCallback(Ice.PropertiesAdminUpdateCallback cb) + addUpdateCallback (Ice.PropertiesAdminUpdateCallback cb) + { + _updateCallbacks.add(cb); + } + + public synchronized void + removeUpdateCallback(Ice.PropertiesAdminUpdateCallback cb) { - _updateCallback = cb; + _updateCallbacks.remove(cb); } private final String _name; private final Ice.Properties _properties; private final Ice.Logger _logger; - private Ice.PropertiesAdminUpdateCallback _updateCallback; + private java.util.List<Ice.PropertiesAdminUpdateCallback> _updateCallbacks = + new java.util.ArrayList<Ice.PropertiesAdminUpdateCallback>(); } |