From a373371d34293ce0e436700ac328a58e9ea37f2e Mon Sep 17 00:00:00 2001 From: Jie Han Date: Mon, 13 Nov 2017 11:26:39 +0800 Subject: [PATCH] Guards iteration against concurrent modification - fix or it would throw a ConcurrentModificationException. Change-Id: I39664b2238ef62d2add96cb76ac8c2113cfc2265 Signed-off-by: Jie Han --- .../controller/sal/dom/broker/BrokerImpl.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) 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"); + } } } } -- 2.36.6