summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java11
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)