commit | dee1aff0e0853b8097e8ad1accc1237838d20ad6 | [log] [tgz] |
---|---|---|
author | Lei Xu <x.rayyle@gmail.com> | Fri Oct 16 00:45:10 2015 -0500 |
committer | Gerrit Code Review <gerrit@onlab.us> | Mon Oct 19 18:52:04 2015 +0000 |
tree | 72e133040dedbe1e322fd8204d274f3c73a35ea9 | |
parent | 1e60f97ae50c05b94fcb6a10520738bfb5efdfd1 [diff] [blame] |
[emu][onos-3159] fix concurrency flaws in OpenFlowDeviceProvider.java and OpenFlowGroupProvider.java Change-Id: I76b21b221d3ef71e1701c13810c4df374afe1776
diff --git a/providers/openflow/group/src/main/java/org/onosproject/provider/of/group/impl/OpenFlowGroupProvider.java b/providers/openflow/group/src/main/java/org/onosproject/provider/of/group/impl/OpenFlowGroupProvider.java index 78650fe..8acf08e 100644 --- a/providers/openflow/group/src/main/java/org/onosproject/provider/of/group/impl/OpenFlowGroupProvider.java +++ b/providers/openflow/group/src/main/java/org/onosproject/provider/of/group/impl/OpenFlowGroupProvider.java
@@ -334,12 +334,20 @@ @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