summaryrefslogtreecommitdiff
path: root/java/broker/src
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2010-04-19 08:34:36 +0000
committerRobert Gemmell <robbie@apache.org>2010-04-19 08:34:36 +0000
commit2a1d7b329c709940ec121b7685c8f167c5d7ac47 (patch)
tree785fd6674a8395022d8d7dcd8c4e5f24c1c7060c /java/broker/src
parent2320f518e71f2043e06072541afd5e44b30fb22b (diff)
downloadqpid-python-2a1d7b329c709940ec121b7685c8f167c5d7ac47.tar.gz
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/qpid@935474 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker/src')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java b/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java
index 1a9766c5b2..b3be6d77e3 100644
--- a/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java
+++ b/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)