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%2Factors%2Fclient%2FSequencedQueue.java;fp=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Factors%2Fclient%2FSequencedQueue.java;h=50c600f52d2f9be7dbfcfee1e6147f3dd03db0b2;hb=c9d61ee66367d819319bb8ccfa9f9b0555264d86;hp=8cae0e133a58edd9dba686c651850c950c7aafad;hpb=50a2f5eb1c94650bc1be1e49d3a5382a1a74a9b3;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/client/SequencedQueue.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/client/SequencedQueue.java index 8cae0e133a..50c600f52d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/client/SequencedQueue.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/client/SequencedQueue.java @@ -20,7 +20,7 @@ import javax.annotation.Nullable; import javax.annotation.concurrent.NotThreadSafe; import org.opendaylight.controller.cluster.access.concepts.Request; import org.opendaylight.controller.cluster.access.concepts.RequestException; -import org.opendaylight.controller.cluster.access.concepts.Response; +import org.opendaylight.controller.cluster.access.concepts.ResponseEnvelope; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import scala.concurrent.duration.FiniteDuration; @@ -105,12 +105,13 @@ final class SequencedQueue { * @param callback Callback to be invoked * @return Optional duration with semantics described above. */ - @Nullable Optional enqueueRequest(final Request request, final RequestCallback callback) { + @Nullable Optional enqueueRequest(final long sequence, final Request request, + final RequestCallback callback) { + checkNotClosed(); + final long now = ticker.read(); - final SequencedQueueEntry e = new SequencedQueueEntry(request, callback, now); + final SequencedQueueEntry e = new SequencedQueueEntry(request, sequence, callback, now); - // We could have check first, but argument checking needs to happen first - checkNotClosed(); queue.add(e); LOG.debug("Enqueued request {} to queue {}", request, this); @@ -127,7 +128,7 @@ final class SequencedQueue { } } - ClientActorBehavior complete(final ClientActorBehavior current, final Response response) { + ClientActorBehavior complete(final ClientActorBehavior current, final ResponseEnvelope response) { // Responses to different targets may arrive out of order, hence we use an iterator final Iterator it = queue.iterator(); while (it.hasNext()) { @@ -136,7 +137,7 @@ final class SequencedQueue { lastProgress = ticker.read(); it.remove(); LOG.debug("Completing request {} with {}", e, response); - return e.complete(response); + return e.complete(response.getMessage()); } }