From: Robert Varga Date: Fri, 5 May 2017 11:46:22 +0000 (+0200) Subject: BUG-8372: fix abort message confusion X-Git-Tag: release/nitrogen~281 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=047566574ea74d1dfe24fa8075f8ba137faa698c;hp=b8e58ad33db2a15162d548ba13f241409ffaadd9 BUG-8372: fix abort message confusion Immediate transaction aborts need to use the appropriate message, not 3PC's TransactionAbortRequest. Change-Id: I9e25e3f20ed62fc520853685af17accef35c1bb4 Signed-off-by: Robert Varga (cherry picked from commit 4036805b31f73c7e7e2b06e84c8da975b2e45263) --- 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 a41bef9c9e..9eba0bf4e9 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.function.Consumer; import java.util.function.Supplier; import javax.annotation.Nullable; import javax.annotation.concurrent.NotThreadSafe; +import org.opendaylight.controller.cluster.access.commands.AbortLocalTransactionRequest; import org.opendaylight.controller.cluster.access.commands.CommitLocalTransactionRequest; import org.opendaylight.controller.cluster.access.commands.ModifyTransactionRequest; import org.opendaylight.controller.cluster.access.commands.PersistenceProtocol; @@ -220,7 +221,7 @@ final class LocalReadWriteProxyTransaction extends LocalProxyTransaction { switch (maybeProtocol.get()) { case ABORT: - sendAbort(callback); + sendRequest(new AbortLocalTransactionRequest(getIdentifier(), localActor()), callback); break; case READY: // No-op, as we have already issued a seal() diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java index e91bd6c8b0..d14b7bda66 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java @@ -71,7 +71,6 @@ final class RemoteProxyTransaction extends AbstractProxyTransaction { private volatile Exception operationFailure; - RemoteProxyTransaction(final ProxyHistory parent, final TransactionIdentifier identifier, final boolean snapshotOnly, final boolean sendReadyOnSeal) { super(parent); @@ -303,7 +302,11 @@ final class RemoteProxyTransaction extends AbstractProxyTransaction { switch (maybeProto.get()) { case ABORT: - sendAbort(callback); + ensureInitializedBuilder(); + builder.setAbort(); + final ModifyTransactionRequest newReq = builder.build(); + builderBusy = false; + sendRequest(newReq, callback); break; case SIMPLE: sendRequest(commitRequest(false), callback); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransactionTest.java index 9cec79c9f8..390302b539 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransactionTest.java @@ -177,7 +177,7 @@ public class LocalReadWriteProxyTransactionTest extends LocalProxyTransactionTes final ModifyTransactionRequest request = builder.build(); final Consumer> callback = createCallbackMock(); transaction.applyModifyTransactionRequest(request, callback); - getTester().expectTransactionRequest(TransactionAbortRequest.class); + getTester().expectTransactionRequest(AbortLocalTransactionRequest.class); } @Test diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransactionTest.java index 9d6122f653..f646bed486 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransactionTest.java @@ -178,8 +178,10 @@ public class RemoteProxyTransactionTest extends AbstractProxyTransactionTest