X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fprotocol_plugins%2Fopenflow%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fprotocol_plugin%2Fopenflow%2Finternal%2FTopologyServiceShim.java;h=08ddbde30af11d3551447e9cb03f05a405e35887;hp=4e4e867fec637a30c3a0a26eedb128becbda84c7;hb=452bf933a9aab9f48d19d45b09b8b7fd08ed1fc1;hpb=0ae12c54560ef14cb8c08beef4553f7523d41578 diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TopologyServiceShim.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TopologyServiceShim.java index 4e4e867fec..08ddbde30a 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TopologyServiceShim.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TopologyServiceShim.java @@ -141,7 +141,7 @@ public class TopologyServiceShim implements IDiscoveryListener, Thread.sleep(100); } catch (InterruptedException e1) { - logger.warn("TopologyNotify interrupted {}", + logger.trace("TopologyNotify interrupted {}", e1.getMessage()); if (shuttingDown) { return; @@ -180,21 +180,27 @@ public class TopologyServiceShim implements IDiscoveryListener, for (String container : containerList) { Map>> edgePropsMap = edgeMap .get(container); - Edge edge = edgePropsMap.get(connector).getLeft(); - if (edge.getTailNodeConnector().equals(connector)) { - ITopologyServiceShimListener topologServiceShimListener = topologyServiceShimListeners - .get(container); - if (update.type == UpdateType.ADDED) { - topologServiceShimListener - .edgeOverUtilized(edge); - } else { - topologServiceShimListener - .edgeUtilBackToNormal(edge); + // the edgePropsMap for a particular container may not have + // the connector. + // so check for null + Pair> edgeProp = edgePropsMap.get(connector); + if(edgeProp != null) { + Edge edge = edgeProp.getLeft(); + if (edge.getTailNodeConnector().equals(connector)) { + ITopologyServiceShimListener topologServiceShimListener = topologyServiceShimListeners + .get(container); + if (update.type == UpdateType.ADDED) { + topologServiceShimListener + .edgeOverUtilized(edge); + } else { + topologServiceShimListener + .edgeUtilBackToNormal(edge); + } } } } } catch (InterruptedException e1) { - logger.warn( + logger.trace( "Edge Bandwidth Utilization Notify Thread interrupted {}", e1.getMessage()); if (shuttingDown) { @@ -229,10 +235,9 @@ public class TopologyServiceShim implements IDiscoveryListener, logger.debug("Bulk Notify container:{}", containerName); TopologyBulkUpdate(containerName); } catch (InterruptedException e) { - logger.warn("Topology Bulk update thread interrupted"); + logger.trace("Topology Bulk update thread interrupted"); if (shuttingDown) { - return; - } + return; } } } } @@ -259,6 +264,10 @@ public class TopologyServiceShim implements IDiscoveryListener, protected void pollTxBitRates() { Map>> globalContainerEdges = edgeMap .get(GlobalConstants.DEFAULT.toString()); + if (shuttingDown) { + logger.trace("Getting out the pollTxBitRates because bundle going down"); + return; + } if (globalContainerEdges == null) { return; } @@ -351,6 +360,9 @@ public class TopologyServiceShim implements IDiscoveryListener, logger.trace("STOP called!"); shuttingDown = true; notifyThread.interrupt(); + bwUtilNotifyThread.interrupt(); + ofPluginTopoBulkUpdate.interrupt(); + pollTimer.cancel(); } void setTopologyServiceShimListener(Map props,