From 926f42db09128e877e1c37bbd20e849a9efdfea6 Mon Sep 17 00:00:00 2001 From: Jozef Gloncak Date: Wed, 20 May 2015 15:31:53 +0200 Subject: [PATCH] Returning of future from request context - PacketProcessingService. Change-Id: I3404fb48b937c948f6ae1bd152f50a9e69cba721 Signed-off-by: Jozef Gloncak --- .../services/PacketProcessingServiceImpl.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/PacketProcessingServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/PacketProcessingServiceImpl.java index 7c8c6df8c7..64948dc28a 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/PacketProcessingServiceImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/PacketProcessingServiceImpl.java @@ -10,7 +10,6 @@ package org.opendaylight.openflowplugin.impl.services; import com.google.common.base.Function; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.ListenableFuture; -import com.google.common.util.concurrent.SettableFuture; import java.util.concurrent.Future; import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; @@ -46,26 +45,28 @@ public class PacketProcessingServiceImpl extends CommonService implements Packet final OutboundQueue outboundQueue = getDeviceContext().getPrimaryConnectionContext().getOutboundQueueProvider(); - final SettableFuture> settableFuture = SettableFuture.create(); - outboundQueue.commitEntry(xid.getValue(), message, new FutureCallback() { + + RpcResultBuilder rpcResultBuilder; @Override public void onSuccess(final OfHeader ofHeader) { + rpcResultBuilder = RpcResultBuilder.success(); + requestContext.setResult(rpcResultBuilder.build()); RequestContextUtil.closeRequstContext(requestContext); + getMessageSpy().spyMessage(message.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMIT_SUCCESS); - final RpcResultBuilder rpcResultBuilder = RpcResultBuilder.success(); - settableFuture.set(rpcResultBuilder.build()); } @Override public void onFailure(final Throwable throwable) { + rpcResultBuilder = RpcResultBuilder.failed().withError(RpcError.ErrorType.APPLICATION, throwable.getMessage(), throwable); + requestContext.setResult(rpcResultBuilder.build()); RequestContextUtil.closeRequstContext(requestContext); + getMessageSpy().spyMessage(message.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMIT_FAILURE); - final RpcResultBuilder rpcResultBuilder = RpcResultBuilder.failed().withError(RpcError.ErrorType.APPLICATION, throwable.getMessage(), throwable); - settableFuture.set(rpcResultBuilder.build()); } }); - return settableFuture; + return requestContext.getFuture(); } }); -- 2.36.6