X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcds-access-client%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fclient%2FClientActorBehavior.java;h=97d312ce394a186ec4d9b4b311676218d2f21bc3;hp=e4b73b14f0c71f85bde3279522887a5b466700f8;hb=32b322afd58f120a78208c939a01422aa224d0cf;hpb=c7846405c83f680660852f299d8051b420b3cddd diff --git a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ClientActorBehavior.java b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ClientActorBehavior.java index e4b73b14f0..97d312ce39 100644 --- a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ClientActorBehavior.java +++ b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ClientActorBehavior.java @@ -16,6 +16,7 @@ import javax.annotation.Nullable; import javax.annotation.concurrent.GuardedBy; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; import org.opendaylight.controller.cluster.access.concepts.FailureEnvelope; +import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.access.concepts.RequestException; import org.opendaylight.controller.cluster.access.concepts.RequestFailure; import org.opendaylight.controller.cluster.access.concepts.ResponseEnvelope; @@ -100,14 +101,19 @@ public abstract class ClientActorBehavior extends return onCommand(command); } - private void onResponse(final ResponseEnvelope response) { - final WritableIdentifier id = response.getMessage().getTarget(); - - // FIXME: this will need to be updated for other Request/Response types to extract cookie - Preconditions.checkArgument(id instanceof TransactionIdentifier); - final TransactionIdentifier txId = (TransactionIdentifier) id; + private static long extractCookie(final WritableIdentifier id) { + if (id instanceof TransactionIdentifier) { + return ((TransactionIdentifier) id).getHistoryId().getCookie(); + } else if (id instanceof LocalHistoryIdentifier) { + return ((LocalHistoryIdentifier) id).getCookie(); + } else { + throw new IllegalArgumentException("Unhandled identifier " + id); + } + } - final AbstractClientConnection connection = connections.get(txId.getHistoryId().getCookie()); + private void onResponse(final ResponseEnvelope response) { + final long cookie = extractCookie(response.getMessage().getTarget()); + final AbstractClientConnection connection = connections.get(cookie); if (connection != null) { connection.receiveResponse(response); } else {