From: Robert Varga Date: Thu, 27 Mar 2014 02:51:34 +0000 (+0100) Subject: BUG-509: Fix thread safety of DOMDataBrokerImpl.ready() X-Git-Tag: autorelease-tag-v20140601202136_82eb3f9~262^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=c7f26754e6544436caec4325eaa4c149e629d09c;ds=sidebyside BUG-509: Fix thread safety of DOMDataBrokerImpl.ready() Transition to ready has to occur precisely once, so the process of taking cohorts has to be synchronized. Change-Id: I8ba8fe7437dd59547d04fec73f5cd9ed43232161 Signed-off-by: Robert Varga --- diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerImpl.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerImpl.java index fc87a91105..64a5606e3f 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerImpl.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerImpl.java @@ -190,7 +190,7 @@ public class DOMDataBrokerImpl implements DOMDataBroker, AutoCloseable { this.broker = broker; } - public Iterable ready() { + public synchronized Iterable ready() { checkState(cohorts == null, "Transaction was already marked as ready."); ImmutableList.Builder cohortsBuilder = ImmutableList.builder(); for (DOMStoreWriteTransaction subTx : getSubtransactions()) {