diff options
Diffstat (limited to 'framework/src/onos/providers/openflow/group')
-rw-r--r-- | framework/src/onos/providers/openflow/group/src/main/java/org/onosproject/provider/of/group/impl/OpenFlowGroupProvider.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/framework/src/onos/providers/openflow/group/src/main/java/org/onosproject/provider/of/group/impl/OpenFlowGroupProvider.java b/framework/src/onos/providers/openflow/group/src/main/java/org/onosproject/provider/of/group/impl/OpenFlowGroupProvider.java index 78650fe6..8acf08ee 100644 --- a/framework/src/onos/providers/openflow/group/src/main/java/org/onosproject/provider/of/group/impl/OpenFlowGroupProvider.java +++ b/framework/src/onos/providers/openflow/group/src/main/java/org/onosproject/provider/of/group/impl/OpenFlowGroupProvider.java @@ -334,12 +334,20 @@ public class OpenFlowGroupProvider extends AbstractProvider implements GroupProv @Override public void switchAdded(Dpid dpid) { OpenFlowSwitch sw = controller.getSwitch(dpid); + if (sw == null) { + return; + } if (isGroupSupported(sw)) { GroupStatsCollector gsc = new GroupStatsCollector( controller.getSwitch(dpid), POLL_INTERVAL); gsc.start(); collectors.put(dpid, gsc); } + + //figure out race condition + if (controller.getSwitch(dpid) == null) { + switchRemoved(dpid); + } } @Override |