From 6278245ab37ad9764d4a88c337e8a87631d2c5c9 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 7 Dec 2023 03:38:45 +0100 Subject: [PATCH] Make sure listeners are immutable We guarantee DOMNotificationRouter.listeners to be immutable. Make sure the field has the correct type to prevent confusion. Change-Id: Ia4b86c00bdd0517182d4ec0ad63b7f903d3c4ee7 Signed-off-by: Robert Varga --- .../mdsal/dom/broker/DOMNotificationRouter.java | 7 +++---- .../mdsal/dom/broker/DOMNotificationRouterTest.java | 3 +-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMNotificationRouter.java b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMNotificationRouter.java index 86b6524753..0f0633c7be 100644 --- a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMNotificationRouter.java +++ b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMNotificationRouter.java @@ -10,7 +10,6 @@ package org.opendaylight.mdsal.dom.broker; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.Multimap; import com.google.common.collect.Multimaps; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; @@ -114,7 +113,7 @@ public class DOMNotificationRouter implements AutoCloseable, DOMNotificationPubl private final ScheduledThreadPoolExecutor observer; private final ExecutorService executor; - private volatile Multimap> listeners = ImmutableMultimap.of(); + private volatile ImmutableMultimap> listeners = ImmutableMultimap.of(); @Inject public DOMNotificationRouter(final int maxQueueCapacity) { @@ -190,7 +189,7 @@ public class DOMNotificationRouter implements AutoCloseable, DOMNotificationPubl * * @param newListeners is used to notify listenerTypes changed */ - private void replaceListeners(final Multimap> newListeners) { + private void replaceListeners(final ImmutableMultimap> newListeners) { listeners = newListeners; notifyListenerTypesChanged(newListeners.keySet()); } @@ -289,7 +288,7 @@ public class DOMNotificationRouter implements AutoCloseable, DOMNotificationPubl } @VisibleForTesting - Multimap listeners() { + ImmutableMultimap listeners() { return listeners; } diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMNotificationRouterTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMNotificationRouterTest.java index 5e27f8c111..0069f192e2 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMNotificationRouterTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMNotificationRouterTest.java @@ -19,7 +19,6 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.opendaylight.mdsal.dom.broker.TestUtils.TEST_CHILD; -import com.google.common.collect.Multimap; import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; import java.util.Collection; @@ -78,7 +77,7 @@ public class DOMNotificationRouterTest { final DOMNotificationListener domNotificationListener = new TestListener(latch); final DOMNotificationRouter domNotificationRouter = new DOMNotificationRouter(1024); - Multimap listeners = domNotificationRouter.listeners(); + var listeners = domNotificationRouter.listeners(); assertTrue(listeners.isEmpty()); assertNotNull(domNotificationRouter.registerNotificationListener(domNotificationListener, -- 2.36.6