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%2FLocalProxyTransaction.java;h=f34abfff9c665ccd38204758a94448781267c764;hb=7991491f2854dde2ec625ed6c08b44df7d258795;hp=49aedaf83d00f50223966f1cc941a69876072834;hpb=b4e199c509cab1c9b838c6471a96ce3cb21fa913;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransaction.java index 49aedaf83d..f34abfff9c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransaction.java @@ -12,6 +12,7 @@ import com.google.common.base.Preconditions; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; import java.util.function.Consumer; +import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.annotation.concurrent.NotThreadSafe; import org.opendaylight.controller.cluster.access.commands.AbortLocalTransactionRequest; @@ -58,8 +59,8 @@ abstract class LocalProxyTransaction extends AbstractProxyTransaction { private final TransactionIdentifier identifier; - LocalProxyTransaction(final ProxyHistory parent, final TransactionIdentifier identifier) { - super(parent); + LocalProxyTransaction(final ProxyHistory parent, final TransactionIdentifier identifier, final boolean isDone) { + super(parent, isDone); this.identifier = Preconditions.checkNotNull(identifier); } @@ -68,7 +69,7 @@ abstract class LocalProxyTransaction extends AbstractProxyTransaction { return identifier; } - abstract DataTreeSnapshot readOnlyView(); + abstract @Nonnull DataTreeSnapshot readOnlyView(); abstract void applyForwardedModifyTransactionRequest(ModifyTransactionRequest request, @Nullable Consumer> callback); @@ -162,7 +163,7 @@ abstract class LocalProxyTransaction extends AbstractProxyTransaction { } else if (handleReadRequest(request, callback)) { // No-op } else if (request instanceof TransactionPurgeRequest) { - sendPurge(callback); + enqueuePurge(callback); } else { throw new IllegalArgumentException("Unhandled request " + request); } @@ -193,8 +194,7 @@ abstract class LocalProxyTransaction extends AbstractProxyTransaction { } }); - successor.ensureSealed(); - + successor.sealOnly(); final ModifyTransactionRequest successorReq = successor.commitRequest(req.isCoordinated()); successor.sendRequest(successorReq, callback); } else if (request instanceof AbortLocalTransactionRequest) { @@ -202,7 +202,9 @@ abstract class LocalProxyTransaction extends AbstractProxyTransaction { successor.abort(); } else if (request instanceof TransactionPurgeRequest) { LOG.debug("Forwarding purge {} to successor {}", request, successor); - successor.sendPurge(callback); + successor.enqueuePurge(callback); + } else if (request instanceof ModifyTransactionRequest) { + successor.handleForwardedRequest(request, callback); } else { throw new IllegalArgumentException("Unhandled request" + request); } @@ -214,7 +216,7 @@ abstract class LocalProxyTransaction extends AbstractProxyTransaction { if (request instanceof AbortLocalTransactionRequest) { successor.sendAbort(request, callback); } else if (request instanceof TransactionPurgeRequest) { - successor.sendPurge(callback); + successor.enqueuePurge(callback); } else { throw new IllegalArgumentException("Unhandled request" + request); }