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%2FLocalReadOnlyProxyTransaction.java;h=ee5889da767bcdb08f05fc0ab5a7c64bcbb95cab;hb=db3d7caeeb310f76a9a159f9a8d7e9beff89f645;hp=4fed10d4bf319cb4f399f5f0feedc2a2feadc007;hpb=b4e199c509cab1c9b838c6471a96ce3cb21fa913;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadOnlyProxyTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadOnlyProxyTransaction.java index 4fed10d4bf..ee5889da76 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadOnlyProxyTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadOnlyProxyTransaction.java @@ -9,6 +9,7 @@ package org.opendaylight.controller.cluster.databroker.actors.dds; import com.google.common.base.Preconditions; import com.google.common.base.Verify; +import java.util.Optional; import java.util.function.Consumer; import javax.annotation.concurrent.NotThreadSafe; import org.opendaylight.controller.cluster.access.commands.CommitLocalTransactionRequest; @@ -32,10 +33,16 @@ final class LocalReadOnlyProxyTransaction extends LocalProxyTransaction { LocalReadOnlyProxyTransaction(final ProxyHistory parent, final TransactionIdentifier identifier, final DataTreeSnapshot snapshot) { - super(parent, identifier); + super(parent, identifier, false); this.snapshot = Preconditions.checkNotNull(snapshot); } + LocalReadOnlyProxyTransaction(final ProxyHistory parent, final TransactionIdentifier identifier) { + super(parent, identifier, true); + // It is an error to touch snapshot once we are DONE + this.snapshot = null; + } + @Override boolean isSnapshotOnly() { return true; @@ -43,37 +50,33 @@ final class LocalReadOnlyProxyTransaction extends LocalProxyTransaction { @Override DataTreeSnapshot readOnlyView() { - return snapshot; + return Preconditions.checkNotNull(snapshot, "Transaction %s is DONE", getIdentifier()); } @Override void doDelete(final YangInstanceIdentifier path) { - throw new UnsupportedOperationException("Read-only snapshot"); + throw new UnsupportedOperationException("doDelete"); } @Override void doMerge(final YangInstanceIdentifier path, final NormalizedNode data) { - throw new UnsupportedOperationException("Read-only snapshot"); + throw new UnsupportedOperationException("doMerge"); } @Override void doWrite(final YangInstanceIdentifier path, final NormalizedNode data) { - throw new UnsupportedOperationException("Read-only snapshot"); + throw new UnsupportedOperationException("doWrite"); } @Override CommitLocalTransactionRequest commitRequest(final boolean coordinated) { - throw new UnsupportedOperationException("Read-only snapshot"); - } - - @Override - void doSeal() { - // No-op + throw new UnsupportedOperationException("commitRequest"); } @Override - void flushState(final AbstractProxyTransaction successor) { + Optional flushState() { // No-op + return Optional.empty(); } @Override