diff options
| author | Robert Gemmell <robbie@apache.org> | 2010-04-19 08:34:36 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2010-04-19 08:34:36 +0000 |
| commit | 2a1d7b329c709940ec121b7685c8f167c5d7ac47 (patch) | |
| tree | 785fd6674a8395022d8d7dcd8c4e5f24c1c7060c /java/broker/src | |
| parent | 2320f518e71f2043e06072541afd5e44b30fb22b (diff) | |
| download | qpid-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.java | 11 |
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) |
