X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatabroker%2FClientBackedTransactionChain.java;h=4168fc9acd835ca09034a47389719697fda5cedc;hb=02d2891da4b71fe01ea8027a88ac6ddd353c2bcd;hp=db30372676c43057749ae11d157901eaa77978d3;hpb=5a0edd493bafc365647bc6311b4b7da86a78645d;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/ClientBackedTransactionChain.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/ClientBackedTransactionChain.java index db30372676..4168fc9acd 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/ClientBackedTransactionChain.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/ClientBackedTransactionChain.java @@ -15,11 +15,11 @@ import org.opendaylight.controller.cluster.databroker.actors.dds.AbstractClientH import org.opendaylight.controller.cluster.databroker.actors.dds.ClientLocalHistory; import org.opendaylight.controller.cluster.databroker.actors.dds.ClientSnapshot; import org.opendaylight.controller.cluster.databroker.actors.dds.ClientTransaction; -import org.opendaylight.controller.md.sal.common.api.data.TransactionChainClosedException; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadTransaction; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadWriteTransaction; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreTransactionChain; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreWriteTransaction; +import org.opendaylight.mdsal.common.api.TransactionChainClosedException; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadTransaction; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadWriteTransaction; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreTransactionChain; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,24 +35,26 @@ final class ClientBackedTransactionChain implements DOMStoreTransactionChain { private final Map, Boolean> openSnapshots = new WeakHashMap<>(); private final ClientLocalHistory history; + private final boolean debugAllocation; - ClientBackedTransactionChain(final ClientLocalHistory history) { + ClientBackedTransactionChain(final ClientLocalHistory history, final boolean debugAllocation) { this.history = Preconditions.checkNotNull(history); + this.debugAllocation = debugAllocation; } @Override public DOMStoreReadTransaction newReadOnlyTransaction() { - return new ClientBackedReadTransaction(createSnapshot(), this); + return new ClientBackedReadTransaction(createSnapshot(), this, allocationContext()); } @Override public DOMStoreReadWriteTransaction newReadWriteTransaction() { - return new ClientBackedReadWriteTransaction(createTransaction()); + return new ClientBackedReadWriteTransaction(createTransaction(), allocationContext()); } @Override public DOMStoreWriteTransaction newWriteOnlyTransaction() { - return new ClientBackedWriteTransaction(createTransaction()); + return new ClientBackedWriteTransaction(createTransaction(), allocationContext()); } @Override @@ -86,6 +88,10 @@ final class ClientBackedTransactionChain implements DOMStoreTransactionChain { } } + private Throwable allocationContext() { + return debugAllocation ? new Throwable("allocated at") : null; + } + private synchronized > T recordSnapshot(final T snapshot) { openSnapshots.put(snapshot, Boolean.TRUE); return snapshot;