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%2Fdatabroker%2Factors%2Fdds%2FLocalReadOnlyProxyTransaction.java;h=e85c86f5b53e985771d6f470f8d75d363eca0ab0;hp=65e6bf6b49cb9dc9520856c5db7b9da7aecb55db;hb=18ddbfdc55a1faddf7aeb2df6b25481d34c820ab;hpb=caa423625725a7937205f003421e7a08a734760b 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 65e6bf6b49..e85c86f5b5 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 @@ -32,10 +32,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,7 +49,7 @@ final class LocalReadOnlyProxyTransaction extends LocalProxyTransaction { @Override DataTreeSnapshot readOnlyView() { - return snapshot; + return Preconditions.checkNotNull(snapshot, "Transaction %s is DONE", getIdentifier()); } @Override @@ -67,23 +73,28 @@ final class LocalReadOnlyProxyTransaction extends LocalProxyTransaction { } @Override - void doSeal() { + void flushState(final AbstractProxyTransaction successor) { // No-op } @Override - void flushState(final AbstractProxyTransaction successor) { - // No-op + void applyForwardedModifyTransactionRequest(final ModifyTransactionRequest request, + final Consumer> callback) { + commonModifyTransactionRequest(request); + abort(); } @Override - void applyModifyTransactionRequest(final ModifyTransactionRequest request, - final Consumer> callback) { + void replayModifyTransactionRequest(final ModifyTransactionRequest request, + final Consumer> callback, final long enqueuedTicks) { + commonModifyTransactionRequest(request); + enqueueAbort(callback, enqueuedTicks); + } + + private static void commonModifyTransactionRequest(final ModifyTransactionRequest request) { Verify.verify(request.getModifications().isEmpty()); final PersistenceProtocol protocol = request.getPersistenceProtocol().get(); Verify.verify(protocol == PersistenceProtocol.ABORT); - abort(); } - }