From 01a18609d3def3c5ff60b72479c8c1e117fefd0f Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 20 May 2015 23:05:05 +0200 Subject: [PATCH] Remove a potential NPE If the packet is null, it will throw NPE, fix that. Change-Id: I513161e0ebe996c1dfa7ce405c303b1d0f7e3bf4 Signed-off-by: Robert Varga --- .../impl/device/DeviceContextImpl.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java index f75a58e576..e09a5c6e04 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java @@ -73,7 +73,6 @@ import org.opendaylight.yangtools.yang.binding.ChildOf; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; -import org.opendaylight.yangtools.yang.common.RpcResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -106,7 +105,7 @@ public class DeviceContextImpl implements DeviceContext { private volatile int outstandingNotificationsAmount = 0; private volatile boolean filteringPacketIn = false; - private Object throttlingLock = new Object(); + private final Object throttlingLock = new Object(); private int filteringHighWaterMark = 0; @Override @@ -151,7 +150,6 @@ public class DeviceContextImpl implements DeviceContext { @Override public > void onMessage(final M message, final RequestContext requestContext) { // TODO Auto-generated method stub - } @Override @@ -200,7 +198,6 @@ public class DeviceContextImpl implements DeviceContext { return auxiliaryConnectionContexts.get(new SwitchConnectionCookieOFImpl(cookie.longValue())); } - @Override public DeviceFlowRegistry getDeviceFlowRegistry() { return deviceFlowRegistry; @@ -218,13 +215,11 @@ public class DeviceContextImpl implements DeviceContext { @Override public void processReply(final OfHeader ofHeader) { - RpcResult rpcResult; if (ofHeader instanceof Error) { messageSpy.spyMessage(ofHeader.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.FROM_SWITCH_PUBLISHED_FAILURE); } else { messageSpy.spyMessage(ofHeader.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.FROM_SWITCH_PUBLISHED_SUCCESS); } - } @Override @@ -279,12 +274,11 @@ public class DeviceContextImpl implements DeviceContext { final MessageTranslator messageTranslator = translatorLibrary.lookupTranslator(translatorKey); final PacketReceived packetReceived = messageTranslator.translate(packetInMessage, this, null); - if (packetReceived != null) { - messageSpy.spyMessage(packetReceived.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.FROM_SWITCH_TRANSLATE_OUT_SUCCESS); - } else { - messageSpy.spyMessage(packetReceived.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.FROM_SWITCH_TRANSLATE_SRC_FAILURE); + if (packetReceived == null) { + LOG.debug("Received a null packet from switch"); return; } + messageSpy.spyMessage(packetReceived.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.FROM_SWITCH_TRANSLATE_SRC_FAILURE); ListenableFuture offerNotification = notificationPublishService.offerNotification(packetReceived); synchronized (throttlingLock) { @@ -306,13 +300,13 @@ public class DeviceContextImpl implements DeviceContext { Futures.addCallback(offerNotification, new FutureCallback() { @Override - public void onSuccess(Object result) { + public void onSuccess(final Object result) { countdownFiltering(); messageSpy.spyMessage(packetReceived.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.FROM_SWITCH_PUBLISHED_SUCCESS); } @Override - public void onFailure(Throwable t) { + public void onFailure(final Throwable t) { countdownFiltering(); messageSpy.spyMessage(packetReceived.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.FROM_SWITCH_NOTIFICATION_REJECTED); LOG.debug("notification offer failed: {}, outstanding: {}", t.getMessage(), outstandingNotificationsAmount); -- 2.36.6