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%2FFrontendReadOnlyTransaction.java;h=5c0d91396347065375beb3e9eb583ba6ad8eaf7c;hp=465cfcbee10af4a97b47e9cee17e84869433bcd6;hb=2634ed7138a343f051ff6452ccc7edd3abfc0c3a;hpb=d65a77b0a3dc7a10952b1e1ecf2ee69c925530bb;ds=sidebyside diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadOnlyTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadOnlyTransaction.java index 465cfcbee1..5c0d913963 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadOnlyTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadOnlyTransaction.java @@ -17,8 +17,6 @@ import org.opendaylight.controller.cluster.access.commands.ReadTransactionReques import org.opendaylight.controller.cluster.access.commands.ReadTransactionSuccess; import org.opendaylight.controller.cluster.access.commands.TransactionAbortRequest; import org.opendaylight.controller.cluster.access.commands.TransactionAbortSuccess; -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.concepts.RequestEnvelope; @@ -55,19 +53,22 @@ final class FrontendReadOnlyTransaction extends FrontendTransaction { } else if (request instanceof ReadTransactionRequest) { return handleReadTransaction((ReadTransactionRequest) request); } 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); } } - private TransactionSuccess handleTransactionAbort(final TransactionAbortRequest request, - final RequestEnvelope envelope, final long now) throws RequestException { - openTransaction.abort(); - return new TransactionAbortSuccess(openTransaction.getIdentifier(), request.getSequence()); + @Override + void purge(final Runnable callback) { + openTransaction.purge(callback); + } + + private void handleTransactionAbort(final TransactionAbortRequest request, final RequestEnvelope envelope, + final long now) throws RequestException { + openTransaction.abort(() -> recordAndSendSuccess(envelope, now, new TransactionAbortSuccess(request.getTarget(), + request.getSequence()))); } private ExistsTransactionSuccess handleExistsTransaction(final ExistsTransactionRequest request)