Fixed consistent map event listener remove
Change-Id: I8e73faa31353929fe2a7b4c85923f64abaf5e497
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/MeteredAsyncConsistentMap.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/MeteredAsyncConsistentMap.java
index fc96273..f8844fb 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/MeteredAsyncConsistentMap.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/MeteredAsyncConsistentMap.java
@@ -21,6 +21,7 @@
import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.Executor;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Predicate;
@@ -224,12 +225,12 @@
}
@Override
- public CompletableFuture<Void> addListener(MapEventListener<K, V> listener) {
+ public CompletableFuture<Void> addListener(MapEventListener<K, V> listener, Executor executor) {
final MeteringAgent.Context timer = monitor.startTimer(ADD_LISTENER);
synchronized (listeners) {
InternalMeteredMapEventListener meteredListener =
listeners.computeIfAbsent(listener, k -> new InternalMeteredMapEventListener(listener));
- return super.addListener(meteredListener)
+ return super.addListener(meteredListener, executor)
.whenComplete((r, e) -> timer.stop(e));
}
}
@@ -239,7 +240,7 @@
final MeteringAgent.Context timer = monitor.startTimer(REMOVE_LISTENER);
InternalMeteredMapEventListener meteredListener = listeners.remove(listener);
if (meteredListener != null) {
- return super.removeListener(listener)
+ return super.removeListener(meteredListener)
.whenComplete((r, e) -> timer.stop(e));
} else {
timer.stop(null);