diff options
Diffstat (limited to 'qpid/java')
| -rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java b/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java index 1a9766c5b2..b3be6d77e3 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java @@ -359,6 +359,12 @@ public class QMFService implements ConfigStore.ConfigEventListener public void close() { + for(ConfigObjectType v : _qmfClassMapping.values()) + { + _configStore.removeConfigEventListener(v, this); + } + _listeners.clear(); + _managedObjects.clear(); _managedObjectsById.clear(); _classMap.clear(); @@ -414,6 +420,11 @@ public class QMFService implements ConfigStore.ConfigEventListener private void unmanageObject(final ConfiguredObject object) { final QMFClass qmfClass = _classMap.get(object.getConfigType()); + + if(qmfClass == null) + { + return; + } ConcurrentHashMap<ConfiguredObject, QMFObject> classObjects = _managedObjects.get(qmfClass); if(classObjects != null) |
