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%2FFrontendTransaction.java;h=6bfd280340f935d636e2a29068b905fecf382969;hb=3ec97cd0a86ad1b79f6854dc6924eb7b06e359a3;hp=b25e5da42a22f95b861bdbf9ea5cdbf2d331fecb;hpb=40fb1fe3e59d720771af163ac344719b84bc86b4;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendTransaction.java index b25e5da42a..6bfd280340 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendTransaction.java @@ -13,8 +13,7 @@ import com.google.common.base.Verify; import java.util.ArrayDeque; import java.util.Optional; import java.util.Queue; -import javax.annotation.Nullable; -import javax.annotation.concurrent.NotThreadSafe; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.controller.cluster.access.commands.IncrementTransactionSequenceRequest; import org.opendaylight.controller.cluster.access.commands.IncrementTransactionSequenceSuccess; import org.opendaylight.controller.cluster.access.commands.OutOfOrderRequestException; @@ -29,11 +28,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Frontend common transaction state as observed by the shard leader. + * Frontend common transaction state as observed by the shard leader. This class is NOT thread-safe. * * @author Robert Varga */ -@NotThreadSafe abstract class FrontendTransaction implements Identifiable { private static final Logger LOG = LoggerFactory.getLogger(FrontendTransaction.class); @@ -70,10 +68,10 @@ abstract class FrontendTransaction implements Identifiable> replaySequence(final long sequence) throws RequestException { + final Optional> replaySequence(final long sequence) throws RequestException { // Fast path check: if the requested sequence is the next request, bail early if (expectedSequence == sequence) { - return java.util.Optional.empty(); + return Optional.empty(); } // Check sequencing: we do not need to bother with future requests @@ -109,7 +107,7 @@ abstract class FrontendTransaction implements Identifiable handleRequest(final TransactionRequest request, final RequestEnvelope envelope, - final long now) throws RequestException { + final @Nullable TransactionSuccess handleRequest(final TransactionRequest request, + final RequestEnvelope envelope, final long now) throws RequestException { if (request instanceof IncrementTransactionSequenceRequest) { final IncrementTransactionSequenceRequest incr = (IncrementTransactionSequenceRequest) request; expectedSequence += incr.getIncrement(); @@ -151,8 +148,7 @@ abstract class FrontendTransaction implements Identifiable doHandleRequest(TransactionRequest request, RequestEnvelope envelope, + abstract @Nullable TransactionSuccess doHandleRequest(TransactionRequest request, RequestEnvelope envelope, long now) throws RequestException; abstract void retire();