[ONOS-4789]some services don't remove listener in deactive function
Change-Id: I74c3f4eb14edcd93d06a8838a4205df381c7f678
diff --git a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java
index 3c42346..57a86e4 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java
@@ -86,6 +86,12 @@
private final AtomicLong sequenceNumber = new AtomicLong(0);
+ private EventuallyConsistentMapListener<Key, IntentData>
+ mapCurrentListener = new InternalCurrentListener();
+
+ private EventuallyConsistentMapListener<Key, IntentData>
+ mapPendingListener = new InternalPendingListener();
+
@Activate
public void activate() {
KryoNamespace.Builder intentSerializer = KryoNamespace.newBuilder()
@@ -111,14 +117,16 @@
.withPeerUpdateFunction((key, intentData) -> getPeerNodes(key, intentData))
.build();
- currentMap.addListener(new InternalCurrentListener());
- pendingMap.addListener(new InternalPendingListener());
+ currentMap.addListener(mapCurrentListener);
+ pendingMap.addListener(mapPendingListener);
log.info("Started");
}
@Deactivate
public void deactivate() {
+ currentMap.removeListener(mapCurrentListener);
+ pendingMap.removeListener(mapPendingListener);
currentMap.destroy();
pendingMap.destroy();