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%2Fdatastore%2FFrontendReadOnlyTransaction.java;h=071fded649adf0dd275602864fa51a3d22eab6c6;hb=6303adf6be756fc7cb02823673fa3661950c3599;hp=36a876be6654089ccdc652f269329ebd3aa36e94;hpb=5cb0787412ab63a3aa5dcc044511e1ce569662cf;p=controller.git 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 36a876be66..071fded649 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 @@ -23,6 +23,8 @@ import org.opendaylight.controller.cluster.access.concepts.RequestEnvelope; import org.opendaylight.controller.cluster.access.concepts.RequestException; import org.opendaylight.controller.cluster.access.concepts.UnsupportedRequestException; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Read-only frontend transaction state as observed by the shard leader. @@ -31,6 +33,8 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; */ @NotThreadSafe final class FrontendReadOnlyTransaction extends FrontendTransaction { + private static final Logger LOG = LoggerFactory.getLogger(FrontendReadOnlyTransaction.class); + private final ReadOnlyShardDataTreeTransaction openTransaction; private FrontendReadOnlyTransaction(final AbstractFrontendHistory history, @@ -53,16 +57,18 @@ 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); + handleTransactionAbort((TransactionAbortRequest) request, envelope, now); + return null; } else { + LOG.warn("Rejecting unsupported request {}", request); 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()); + 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)