From 1f07acf5f421b44506b10f0633cc9ade07385cd9 Mon Sep 17 00:00:00 2001 From: Robert Gemmell Date: Mon, 19 Apr 2010 08:34:36 +0000 Subject: QPID-2379 / QPID-2400: Unregister event listeners during QMFService shutdown to prevent fielding object removal events that cant be actioned anymore. Add null check to the QMFClass retrieval during the unmanage process. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@935474 13f79535-47bb-0310-9956-ffa450edef68 --- .../broker/src/main/java/org/apache/qpid/qmf/QMFService.java | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'qpid/java') 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 classObjects = _managedObjects.get(qmfClass); if(classObjects != null) -- cgit v1.2.1