Remove a potential NPE 59/20859/2
authorRobert Varga <rovarga@cisco.com>
Wed, 20 May 2015 21:05:05 +0000 (23:05 +0200)
committerRobert Varga <rovarga@cisco.com>
Thu, 21 May 2015 09:03:48 +0000 (11:03 +0200)
If the packet is null, it will throw NPE, fix that.

Change-Id: I513161e0ebe996c1dfa7ce405c303b1d0f7e3bf4
Signed-off-by: Robert Varga <rovarga@cisco.com>
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java

index f75a58e576afbeab5a8fb29796b6f67926e3b83e..e09a5c6e048e99c4daee9eee1262cacdfdd3acbd 100644 (file)
@@ -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 <M extends ChildOf<DataObject>> 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<OfHeader> 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<PacketInMessage, PacketReceived> 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<? extends Object> offerNotification = notificationPublishService.offerNotification(packetReceived);
         synchronized (throttlingLock) {
@@ -306,13 +300,13 @@ public class DeviceContextImpl implements DeviceContext {
         Futures.addCallback(offerNotification,
                 new FutureCallback<Object>() {
                     @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);