[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();