From ce2938e5616a170ca2fb2f5b478b3b2ceff832a1 Mon Sep 17 00:00:00 2001 From: Tony Tkacik Date: Sun, 26 Jan 2014 22:32:20 +0100 Subject: [PATCH] Changed multimaps to synchronized multimaps Change-Id: I4279eb099559d019523eef8ac59e17e12e62ebdd Signed-off-by: Tony Tkacik --- .../sal/binding/impl/NotificationBrokerImpl.xtend | 8 ++++---- .../sal/common/impl/routing/AbstractDataReadRouter.java | 5 +++-- .../md/sal/common/impl/service/AbstractDataBroker.xtend | 5 +++-- .../sal/dom/broker/impl/NotificationRouterImpl.java | 3 ++- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/NotificationBrokerImpl.xtend b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/NotificationBrokerImpl.xtend index a3c8c5f232..52aa8d0290 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/NotificationBrokerImpl.xtend +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/NotificationBrokerImpl.xtend @@ -21,8 +21,8 @@ import org.opendaylight.yangtools.concepts.ListenerRegistration import org.opendaylight.yangtools.concepts.Registration import org.opendaylight.yangtools.yang.binding.Notification import org.slf4j.LoggerFactory -import org.opendaylight.controller.sal.binding.codegen.impl.SingletonHolder - +import org.opendaylight.controller.sal.binding.codegen.impl.SingletonHolder import com.google.common.collect.Multimaps + class NotificationBrokerImpl implements NotificationProviderService, AutoCloseable { val Multimap, NotificationListener> listeners; @@ -31,12 +31,12 @@ class NotificationBrokerImpl implements NotificationProviderService, AutoCloseab var ExecutorService executor; new() { - listeners = HashMultimap.create() + listeners = Multimaps.synchronizedSetMultimap(HashMultimap.create()) } @Deprecated new(ExecutorService executor) { - listeners = HashMultimap.create() + listeners = Multimaps.synchronizedSetMultimap(HashMultimap.create()) this.executor = executor; } diff --git a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/routing/AbstractDataReadRouter.java b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/routing/AbstractDataReadRouter.java index 9e6147359d..4ddceb3b5f 100644 --- a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/routing/AbstractDataReadRouter.java +++ b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/routing/AbstractDataReadRouter.java @@ -12,6 +12,7 @@ import com.google.common.base.Predicate; import com.google.common.collect.FluentIterable; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; +import com.google.common.collect.Multimaps; /** * Base abstract implementation of DataReadRouter, which performs @@ -22,8 +23,8 @@ import com.google.common.collect.Multimap; */ public abstract class AbstractDataReadRouter

, D> implements DataReader { - Multimap> configReaders = HashMultimap.create(); - Multimap> operationalReaders = HashMultimap.create(); + Multimap> configReaders = Multimaps.synchronizedSetMultimap(HashMultimap.>create()); + Multimap> operationalReaders = Multimaps.synchronizedSetMultimap(HashMultimap.>create()); @Override public D readConfigurationData(P path) { diff --git a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/service/AbstractDataBroker.xtend b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/service/AbstractDataBroker.xtend index d86547ab99..cef88fc375 100644 --- a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/service/AbstractDataBroker.xtend +++ b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/service/AbstractDataBroker.xtend @@ -37,6 +37,7 @@ import org.opendaylight.yangtools.yang.common.RpcResult import org.slf4j.LoggerFactory import static com.google.common.base.Preconditions.* import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent +import com.google.common.collect.Multimaps abstract class AbstractDataBroker

, D, DCL extends DataChangeListener> implements DataModificationTransactionFactory, // DataReader, // @@ -60,8 +61,8 @@ DataProvisionService { @Property private val AtomicLong finishedTransactionsCount = new AtomicLong - Multimap> listeners = HashMultimap.create(); - Multimap> commitHandlers = HashMultimap.create(); + Multimap> listeners = Multimaps.synchronizedSetMultimap(HashMultimap.create()); + Multimap> commitHandlers = Multimaps.synchronizedSetMultimap(HashMultimap.create()); val ListenerRegistry>> commitHandlerRegistrationListeners = new ListenerRegistry(); public new() { diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/impl/NotificationRouterImpl.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/impl/NotificationRouterImpl.java index 6242dee038..763407f23a 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/impl/NotificationRouterImpl.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/impl/NotificationRouterImpl.java @@ -34,11 +34,12 @@ import org.slf4j.LoggerFactory; import com.google.common.collect.HashMultimap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Multimap; +import com.google.common.collect.Multimaps; public class NotificationRouterImpl implements NotificationRouter { private static Logger log = LoggerFactory.getLogger(NotificationRouterImpl.class); - private Multimap> listeners = HashMultimap.create(); + private Multimap> listeners = Multimaps.synchronizedSetMultimap(HashMultimap.>create()); private void sendNotification(CompositeNode notification) { QName type = notification.getNodeType(); -- 2.36.6