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%2Fdatastore%2FFrontendReadWriteTransaction.java;h=f9d9580214e41c2d28430c3a46c68b005ad6e8bc;hp=2c2a287670f2e2676d42721c31641e181569a0e4;hb=17a38939f6ba3cbbc1ff0f1f3e00b58f5002813d;hpb=642f83ada35fca9ed7a8f242b90e41740803ddfa diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java index 2c2a287670..f9d9580214 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java @@ -32,8 +32,6 @@ import org.opendaylight.controller.cluster.access.commands.TransactionMerge; import org.opendaylight.controller.cluster.access.commands.TransactionModification; import org.opendaylight.controller.cluster.access.commands.TransactionPreCommitRequest; import org.opendaylight.controller.cluster.access.commands.TransactionPreCommitSuccess; -import org.opendaylight.controller.cluster.access.commands.TransactionPurgeRequest; -import org.opendaylight.controller.cluster.access.commands.TransactionPurgeResponse; import org.opendaylight.controller.cluster.access.commands.TransactionRequest; import org.opendaylight.controller.cluster.access.commands.TransactionSuccess; import org.opendaylight.controller.cluster.access.commands.TransactionWrite; @@ -103,10 +101,8 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { handleTransactionDoCommit((TransactionDoCommitRequest) request, envelope, now); return null; } else if (request instanceof TransactionAbortRequest) { - return handleTransactionAbort((TransactionAbortRequest) request, envelope, now); - } else if (request instanceof TransactionPurgeRequest) { - // No-op for now - return new TransactionPurgeResponse(request.getTarget(), request.getSequence()); + handleTransactionAbort((TransactionAbortRequest) request, envelope, now); + return null; } else { throw new UnsupportedRequestException(request); } @@ -145,11 +141,12 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { }); } - private TransactionSuccess handleTransactionAbort(final TransactionAbortRequest request, + private void handleTransactionAbort(final TransactionAbortRequest request, final RequestEnvelope envelope, final long now) throws RequestException { if (readyCohort == null) { - openTransaction.abort(); - return new TransactionAbortSuccess(getIdentifier(), request.getSequence()); + openTransaction.abort(() -> recordAndSendSuccess(envelope, now, + new TransactionAbortSuccess(getIdentifier(), request.getSequence()))); + return; } readyCohort.abort(new FutureCallback() { @@ -168,7 +165,6 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { recordAndSendFailure(envelope, now, new RuntimeRequestException("Abort failed", failure)); } }); - return null; } private void coordinatedCommit(final RequestEnvelope envelope, final long now) { @@ -298,9 +294,9 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { switch (maybeProto.get()) { case ABORT: - openTransaction.abort(); + openTransaction.abort(() -> replyModifySuccess(request.getSequence())); openTransaction = null; - return replyModifySuccess(request.getSequence()); + return null; case READY: ensureReady(); return replyModifySuccess(request.getSequence());