Committed by
Gerrit Code Review
STC fixes
- NPE when a switch has already been removed and an attempt is made to access stats on the switch. - NPE in group provider if the system is in the process of shutting down. - Lower ERROR to WARN when switch resources are not available. Change-Id: I5b90ff328b19c2d661fde3a24e90614999c4c900
Showing
3 changed files
with
10 additions
and
2 deletions
| ... | @@ -159,7 +159,7 @@ final class ResourceDeviceListener implements DeviceListener { | ... | @@ -159,7 +159,7 @@ final class ResourceDeviceListener implements DeviceListener { |
| 159 | .map(adminService::register) | 159 | .map(adminService::register) |
| 160 | .ifPresent(success -> { | 160 | .ifPresent(success -> { |
| 161 | if (!success) { | 161 | if (!success) { |
| 162 | - log.error("Failed to register Bandwidth for {}", portPath.id()); | 162 | + log.warn("Failed to register Bandwidth for {}", portPath.id()); |
| 163 | } | 163 | } |
| 164 | }); | 164 | }); |
| 165 | 165 | ... | ... |
| ... | @@ -269,6 +269,10 @@ public class OpenFlowRuleProvider extends AbstractProvider | ... | @@ -269,6 +269,10 @@ public class OpenFlowRuleProvider extends AbstractProvider |
| 269 | Dpid dpid = Dpid.dpid(flowRule.deviceId().uri()); | 269 | Dpid dpid = Dpid.dpid(flowRule.deviceId().uri()); |
| 270 | OpenFlowSwitch sw = controller.getSwitch(dpid); | 270 | OpenFlowSwitch sw = controller.getSwitch(dpid); |
| 271 | 271 | ||
| 272 | + if (sw == null) { | ||
| 273 | + return; | ||
| 274 | + } | ||
| 275 | + | ||
| 272 | FlowRuleExtPayLoad flowRuleExtPayLoad = flowRule.payLoad(); | 276 | FlowRuleExtPayLoad flowRuleExtPayLoad = flowRule.payLoad(); |
| 273 | if (hasPayload(flowRuleExtPayLoad)) { | 277 | if (hasPayload(flowRuleExtPayLoad)) { |
| 274 | OFMessage msg = new ThirdPartyMessage(flowRuleExtPayLoad.payLoad()); | 278 | OFMessage msg = new ThirdPartyMessage(flowRuleExtPayLoad.payLoad()); |
| ... | @@ -298,6 +302,10 @@ public class OpenFlowRuleProvider extends AbstractProvider | ... | @@ -298,6 +302,10 @@ public class OpenFlowRuleProvider extends AbstractProvider |
| 298 | Dpid dpid = Dpid.dpid(flowRule.deviceId().uri()); | 302 | Dpid dpid = Dpid.dpid(flowRule.deviceId().uri()); |
| 299 | OpenFlowSwitch sw = controller.getSwitch(dpid); | 303 | OpenFlowSwitch sw = controller.getSwitch(dpid); |
| 300 | 304 | ||
| 305 | + if (sw == null) { | ||
| 306 | + return; | ||
| 307 | + } | ||
| 308 | + | ||
| 301 | FlowRuleExtPayLoad flowRuleExtPayLoad = flowRule.payLoad(); | 309 | FlowRuleExtPayLoad flowRuleExtPayLoad = flowRule.payLoad(); |
| 302 | if (hasPayload(flowRuleExtPayLoad)) { | 310 | if (hasPayload(flowRuleExtPayLoad)) { |
| 303 | OFMessage msg = new ThirdPartyMessage(flowRuleExtPayLoad.payLoad()); | 311 | OFMessage msg = new ThirdPartyMessage(flowRuleExtPayLoad.payLoad()); | ... | ... |
| ... | @@ -211,7 +211,7 @@ public class OpenFlowGroupProvider extends AbstractProvider implements GroupProv | ... | @@ -211,7 +211,7 @@ public class OpenFlowGroupProvider extends AbstractProvider implements GroupProv |
| 211 | } | 211 | } |
| 212 | } | 212 | } |
| 213 | 213 | ||
| 214 | - if (groupStatsReply != null && groupDescStatsReply != null) { | 214 | + if (providerService != null && groupStatsReply != null) { |
| 215 | Collection<Group> groups = buildGroupMetrics(deviceId, | 215 | Collection<Group> groups = buildGroupMetrics(deviceId, |
| 216 | groupStatsReply, groupDescStatsReply); | 216 | groupStatsReply, groupDescStatsReply); |
| 217 | providerService.pushGroupMetrics(deviceId, groups); | 217 | providerService.pushGroupMetrics(deviceId, groups); | ... | ... |
-
Please register or login to post a comment