X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FShardDataTreeTransactionChain.java;h=794c6d82187d94f1c29a4f3bd8e25bd598cb5ca8;hp=2554151dd73c6e4a0442169474530f21d0bcd586;hb=583f30d1c7a8199b401c9393745c62fe27b5ced8;hpb=de64c6bbf2d5aeb51f4036f9dd606a9bf6f71afb diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTransactionChain.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTransactionChain.java index 2554151dd7..794c6d8218 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTransactionChain.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTransactionChain.java @@ -55,7 +55,7 @@ final class ShardDataTreeTransactionChain extends ShardDataTreeTransactionParent final DataTreeSnapshot snapshot = getSnapshot(); LOG.debug("Allocated read-only transaction {} snapshot {}", txId, snapshot); - return new ReadOnlyShardDataTreeTransaction(txId, snapshot); + return new ReadOnlyShardDataTreeTransaction(this, txId, snapshot); } ReadWriteShardDataTreeTransaction newReadWriteTransaction(final TransactionIdentifier txId) { @@ -72,17 +72,23 @@ final class ShardDataTreeTransactionChain extends ShardDataTreeTransactionParent } @Override - protected void abortTransaction(final AbstractShardDataTreeTransaction transaction) { + void abortFromTransactionActor(final AbstractShardDataTreeTransaction transaction) { if (transaction instanceof ReadWriteShardDataTreeTransaction) { Preconditions.checkState(openTransaction != null, "Attempted to abort transaction %s while none is outstanding", transaction); - LOG.debug("Aborted transaction {}", transaction); + LOG.debug("Aborted open transaction {}", transaction); openTransaction = null; } } @Override - protected ShardDataTreeCohort finishTransaction(final ReadWriteShardDataTreeTransaction transaction) { + void abortTransaction(final AbstractShardDataTreeTransaction transaction, final Runnable callback) { + abortFromTransactionActor(transaction); + dataTree.abortTransaction(transaction, callback); + } + + @Override + ShardDataTreeCohort finishTransaction(final ReadWriteShardDataTreeTransaction transaction) { Preconditions.checkState(openTransaction != null, "Attempted to finish transaction %s while none is outstanding", transaction);