From 523101341940eabc4ee3d6661b6e1cf29af9dda2 Mon Sep 17 00:00:00 2001
From: Srinivasan Ramasubramanian <srini@bigswitch.com>
Date: Mon, 9 Jan 2012 14:12:02 -0800
Subject: [PATCH] Fixing a bug where floodlight doesn't provide a floodlight
 context, resulting in a null-pointer exception.

---
 .../core/OFMessageFilterManager.java          | 24 +++++++++++--------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/src/main/java/net/floodlightcontroller/core/OFMessageFilterManager.java b/src/main/java/net/floodlightcontroller/core/OFMessageFilterManager.java
index b7622bafb..b096f79cc 100644
--- a/src/main/java/net/floodlightcontroller/core/OFMessageFilterManager.java
+++ b/src/main/java/net/floodlightcontroller/core/OFMessageFilterManager.java
@@ -492,12 +492,14 @@ public class OFMessageFilterManager implements IOFMessageListener {
                 sb.append("\nbuffer: ");
                 sb.append(pktIn.getBufferId());
 
+                // If the conext is not set by floodlight, then ignore.
+                if (cntx != null) {
                 // packet type  icmp, arp, etc.
-                eth = IFloodlightProvider.bcStore.get(cntx,
-                        IFloodlightProvider.CONTEXT_PI_PAYLOAD);
-
-                sb.append(eth.toString());
-
+                    eth = IFloodlightProvider.bcStore.get(cntx,
+                            IFloodlightProvider.CONTEXT_PI_PAYLOAD);
+                    if (eth != null)
+                           sb.append(eth.toString());
+                }
                 break;
 
             case PACKET_OUT:
@@ -522,13 +524,15 @@ public class OFMessageFilterManager implements IOFMessageListener {
                 sb.append(HexString.toHexString(sw.getId()));
                 sb.append(" ]");
 
-                eth = new Ethernet();
-
-                eth = IFloodlightProvider.bcStore.get(cntx,
+                // If the conext is not set by floodlight, then ignore.
+                if (cntx != null) {
+                    eth = IFloodlightProvider.bcStore.get(cntx,
                         IFloodlightProvider.CONTEXT_PI_PAYLOAD);
-                sb.append(eth.toString());
+                    if (eth != null)
+                        sb.append(eth.toString());
+                }
 
-                sb.append("ADD: cookie: ");
+                sb.append("\nADD: cookie: ");
                 sb.append(fm.getCookie());
                 sb.append(" idle: ");
                 sb.append(fm.getIdleTimeout());
-- 
GitLab