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%2Factors%2Fdds%2FLocalReadWriteProxyTransaction.java;h=eee4fd0e137f714b86d24c3279d717c9c323a051;hb=refs%2Fchanges%2F94%2F57994%2F7;hp=cbf316d88194e7cbbf59dccc057cbf9d6fc5f5dd;hpb=9b4c07ca27b2c3c7ca5d5e790aa1f121ce4857f3;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransaction.java index cbf316d881..eee4fd0e13 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransaction.java @@ -13,6 +13,7 @@ import java.util.Optional; import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.function.Supplier; +import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.annotation.concurrent.NotThreadSafe; import org.opendaylight.controller.cluster.access.commands.AbortLocalTransactionRequest; @@ -84,10 +85,16 @@ final class LocalReadWriteProxyTransaction extends LocalProxyTransaction { LocalReadWriteProxyTransaction(final ProxyHistory parent, final TransactionIdentifier identifier, final DataTreeSnapshot snapshot) { - super(parent, identifier); + super(parent, identifier, false); this.modification = (CursorAwareDataTreeModification) snapshot.newModification(); } + LocalReadWriteProxyTransaction(final ProxyHistory parent, final TransactionIdentifier identifier) { + super(parent, identifier, true); + // This is DONE transaction, this should never be touched + this.modification = null; + } + @Override boolean isSnapshotOnly() { return false; @@ -321,12 +328,12 @@ final class LocalReadWriteProxyTransaction extends LocalProxyTransaction { closedException = this::abortedException; } - private CursorAwareDataTreeModification getModification() { + private @Nonnull CursorAwareDataTreeModification getModification() { if (closedException != null) { throw closedException.get(); } - return modification; + return Preconditions.checkNotNull(modification, "Transaction %s is DONE", getIdentifier()); } private void sendCommit(final CommitLocalTransactionRequest request, final Consumer> callback) {