From e52e67767076b29cb01939aa7bdd8fee9d205cc1 Mon Sep 17 00:00:00 2001 From: Ashlee Young Date: Fri, 23 Oct 2015 08:31:31 -0700 Subject: Update ONOS src to commit id 69b36d5d11e81e28e56b46ba44e4b8cd701c5867 Change-Id: I9c13045711dbf9c0181106b66a6bf22c72bcf330 Signed-off-by: Ashlee Young --- .../provider/of/device/impl/OpenFlowDeviceProvider.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'framework/src/onos/providers/openflow/device') diff --git a/framework/src/onos/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java b/framework/src/onos/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java index 329df20b..a7e334f4 100644 --- a/framework/src/onos/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java +++ b/framework/src/onos/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java @@ -319,6 +319,9 @@ public class OpenFlowDeviceProvider extends AbstractProvider implements DevicePr } DeviceId did = deviceId(uri(dpid)); OpenFlowSwitch sw = controller.getSwitch(dpid); + if (sw == null) { + return; + } ChassisId cId = new ChassisId(dpid.value()); @@ -339,9 +342,14 @@ public class OpenFlowDeviceProvider extends AbstractProvider implements DevicePr providerService.updatePorts(did, buildPortDescriptions(sw)); PortStatsCollector psc = - new PortStatsCollector(controller.getSwitch(dpid), portStatsPollFrequency); + new PortStatsCollector(sw, portStatsPollFrequency); psc.start(); collectors.put(dpid, psc); + + //figure out race condition for collectors.remove() and collectors.put() + if (controller.getSwitch(dpid) == null) { + switchRemoved(dpid); + } } @Override @@ -364,6 +372,9 @@ public class OpenFlowDeviceProvider extends AbstractProvider implements DevicePr } DeviceId did = deviceId(uri(dpid)); OpenFlowSwitch sw = controller.getSwitch(dpid); + if (sw == null) { + return; + } providerService.updatePorts(did, buildPortDescriptions(sw)); } -- cgit 1.2.3-korg