Merge "BUG 7332: Cleanup queue after switch disconnect" into stable/boron
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / core / ConnectionConductorImpl.java
index f42b433c9ad085d65d2de722e5e78164945253c6..3bfe7aa340398a849c0669742bdcf03cd1eb43c6 100644 (file)
@@ -192,7 +192,11 @@ public class ConnectionConductorImpl implements OpenflowProtocolListener,
      * @param queueType enqueue type
      */
     private void enqueueMessage(OfHeader message, QueueType queueType) {
-        queue.push(message, this, queueType);
+        if (queue != null) {
+            queue.push(message, this, queueType);
+        } else {
+            LOG.debug("Queue is null");
+        }
     }
 
     @Override
@@ -508,6 +512,14 @@ public class ConnectionConductorImpl implements OpenflowProtocolListener,
                 LOG.warn("Closing handshake context failed: {}", e.getMessage());
                 LOG.debug("Detail in hanshake context close:", e);
             }
+        } else {
+            //This condition will occure when Old Helium openflowplugin implementation will be used.
+            try{
+                queue.close();
+                queue = null;
+            }catch (Exception ex){
+                LOG.warn("Closing queue failed: {}", ex.getMessage());
+            }
         }
     }