X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fcore%2Fspi%2Fdata%2FAbstractSnapshotBackedTransactionChain.java;fp=opendaylight%2Fmd-sal%2Fsal-dom-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fcore%2Fspi%2Fdata%2FAbstractSnapshotBackedTransactionChain.java;h=7b6e68dc512e8e5eacf7c183295d33942332862a;hb=9681454e5a6acb2ce5e87c72c06e6a03e901c765;hp=7683937ce2799a31761b23d3e805f2524b1d590c;hpb=08528168cbcf67ce2b0a897e5ac22888b1da53dd;p=controller.git diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractSnapshotBackedTransactionChain.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractSnapshotBackedTransactionChain.java index 7683937ce2..7b6e68dc51 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractSnapshotBackedTransactionChain.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractSnapshotBackedTransactionChain.java @@ -32,7 +32,7 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact * * @return A new snapshot */ - protected abstract DataTreeSnapshot getSnapshot(); + protected abstract DataTreeSnapshot getSnapshot(Object transactionId); } private static final class Idle extends State { @@ -43,7 +43,7 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact } @Override - protected DataTreeSnapshot getSnapshot() { + protected DataTreeSnapshot getSnapshot(Object transactionId) { return chain.takeSnapshot(); } } @@ -66,9 +66,10 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact } @Override - protected DataTreeSnapshot getSnapshot() { + protected DataTreeSnapshot getSnapshot(Object transactionId) { final DataTreeSnapshot ret = snapshot; - Preconditions.checkState(ret != null, "Previous transaction %s is not ready yet", transaction.getIdentifier()); + Preconditions.checkState(ret != null, "Could not get snapshot for transaction %s - previous transaction %s is not ready yet", + transactionId, transaction.getIdentifier()); return ret; } @@ -89,7 +90,7 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact } @Override - protected DataTreeSnapshot getSnapshot() { + protected DataTreeSnapshot getSnapshot(Object transactionId) { throw new IllegalStateException(message); } } @@ -108,9 +109,9 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact state = idleState; } - private Entry getSnapshot() { + private Entry getSnapshot(T transactionId) { final State localState = state; - return new SimpleEntry<>(localState, localState.getSnapshot()); + return new SimpleEntry<>(localState, localState.getSnapshot(transactionId)); } private boolean recordTransaction(final State expected, final DOMStoreWriteTransaction transaction) { @@ -124,7 +125,7 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact } protected DOMStoreReadTransaction newReadOnlyTransaction(T transactionId) { - final Entry entry = getSnapshot(); + final Entry entry = getSnapshot(transactionId); return SnapshotBackedTransactions.newReadTransaction(transactionId, getDebugTransactions(), entry.getValue()); } @@ -138,7 +139,7 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact DOMStoreReadWriteTransaction ret; do { - entry = getSnapshot(); + entry = getSnapshot(transactionId); ret = new SnapshotBackedReadWriteTransaction(transactionId, getDebugTransactions(), entry.getValue(), this); } while (!recordTransaction(entry.getKey(), ret)); @@ -155,7 +156,7 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact DOMStoreWriteTransaction ret; do { - entry = getSnapshot(); + entry = getSnapshot(transactionId); ret = new SnapshotBackedWriteTransaction(transactionId, getDebugTransactions(), entry.getValue(), this); } while (!recordTransaction(entry.getKey(), ret));