From: Jie Han Date: Mon, 13 Nov 2017 03:26:39 +0000 (+0800) Subject: Guards iteration against concurrent modification X-Git-Tag: release/oxygen~58 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=a373371d34293ce0e436700ac328a58e9ea37f2e Guards iteration against concurrent modification - fix or it would throw a ConcurrentModificationException. Change-Id: I39664b2238ef62d2add96cb76ac8c2113cfc2265 Signed-off-by: Jie Han --- diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/BrokerImpl.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/BrokerImpl.java index 33fc244619..7998bdecdd 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/BrokerImpl.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/BrokerImpl.java @@ -79,9 +79,11 @@ public class BrokerImpl implements Broker, DOMRpcProviderService, DOMRpcService, // Validation private void checkPredicates(final Provider prov) { Preconditions.checkNotNull(prov, "Provider should not be null."); - for (final ProviderContextImpl session : providerSessions) { - if (prov.equals(session.getProvider())) { - throw new IllegalStateException("Provider already registered"); + synchronized (providerSessions) { + for (final ProviderContextImpl session : providerSessions) { + if (prov.equals(session.getProvider())) { + throw new IllegalStateException("Provider already registered"); + } } } @@ -89,9 +91,11 @@ public class BrokerImpl implements Broker, DOMRpcProviderService, DOMRpcService, private void checkPredicates(final Consumer cons) { Preconditions.checkNotNull(cons, "Consumer should not be null."); - for (final ConsumerContextImpl session : sessions) { - if (cons.equals(session.getConsumer())) { - throw new IllegalStateException("Consumer already registered"); + synchronized (sessions) { + for (final ConsumerContextImpl session : sessions) { + if (cons.equals(session.getConsumer())) { + throw new IllegalStateException("Consumer already registered"); + } } } }