Fix: resolve NPE caused by null portId of instancePort at two events
Change-Id: Ifb56224b161f7046e10f16f1eb1b7a35f832c3db
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java
index 593fda8..e1b37d3 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java
@@ -860,21 +860,34 @@
switch (event.type()) {
case OPENSTACK_INSTANCE_PORT_DETECTED:
- terminatedInstPorts.remove(instPort.portId());
- terminatedOsPorts.remove(instPort.portId());
+ if (instPort != null && instPort.portId() != null) {
+ String portId = instPort.portId();
- if (pendingInstPortIds.containsKey(instPort.portId())) {
- setFloatingIpRules(pendingInstPortIds.get(instPort.portId()),
- osNetworkService.port(instPort.portId()), null, true);
- pendingInstPortIds.remove(instPort.portId());
+ terminatedInstPorts.remove(portId);
+ terminatedOsPorts.remove(portId);
+
+ Port port = osNetworkService.port(portId);
+
+ if (pendingInstPortIds.containsKey(portId) && port != null) {
+ setFloatingIpRules(pendingInstPortIds.get(portId),
+ port, null, true);
+ pendingInstPortIds.remove(portId);
+ }
}
break;
case OPENSTACK_INSTANCE_PORT_VANISHED:
- terminatedInstPorts.put(instPort.portId(), instPort);
- terminatedOsPorts.put(instPort.portId(),
- osNetworkService.port(instPort.portId()));
+ if (instPort != null && instPort.portId() != null) {
+ String portId = instPort.portId();
+ Port port = osNetworkService.port(portId);
+
+ if (port != null) {
+ terminatedInstPorts.put(portId, instPort);
+ terminatedOsPorts.put(portId, port);
+ }
+ }
+
break;
case OPENSTACK_INSTANCE_MIGRATION_STARTED: