NPE Fix: Adding a null pointer check to avoid null pointer exception. Need to monitor and debug why it is NULL in the first place
Change-Id: I07445756e5a95e1a7c380bae321ece61b180f1b1
diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/GenericIpHandler.java b/src/main/java/net/onrc/onos/apps/segmentrouting/GenericIpHandler.java
index 87b9cd4..6030eb2 100644
--- a/src/main/java/net/onrc/onos/apps/segmentrouting/GenericIpHandler.java
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/GenericIpHandler.java
@@ -103,7 +103,8 @@
// If we do not know the host, then we cannot set the forwarding rule
net.onrc.onos.core.topology.Host host = mutableTopology.getHostByMac(MACAddress
.valueOf(destinationMacAddress));
- if (host == null) {
+ if ((host == null) || (host.getAttachmentPoints()==null)) {
+ log.error("addRouteToHost: Invalid Host object");
return;
}
diff --git a/src/main/java/net/onrc/onos/core/topology/HostImpl.java b/src/main/java/net/onrc/onos/core/topology/HostImpl.java
index 1023806..f9d31a6 100644
--- a/src/main/java/net/onrc/onos/core/topology/HostImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/HostImpl.java
@@ -49,6 +49,9 @@
@Override
public Iterable<Port> getAttachmentPoints() {
+ if (getHostData() == null) {
+ return null;
+ }
List<Port> ports = new ArrayList<>();
final BaseTopologyAdaptor topo = new BaseTopologyAdaptor(topology);
for (SwitchPort swp : getHostData().getAttachmentPoints()) {
@@ -62,7 +65,7 @@
@Override
public long getLastSeenTime() {
- return this.topology.getHostData(id).getLastSeenTime();
+ return (getHostData() != null) ? getHostData().getLastSeenTime() : 0;
}
@Override