Added null-pointer checks.
The second check fixes a failing unit test.

Note: the first null-pointer check was observed by reading
the code, and might not be a complete solution.

Code reviewed and tested by: Ping Ping
diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java b/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java
index dedf607..b084be6 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java
@@ -332,7 +332,7 @@
 		IPortObject portObject1 = ope.searchPort(HexString.toHexString(
 				onosDevice.getSwitchDPID()), onosDevice.getSwitchPort());
 
-		if (portObject1.getLinkedPorts().iterator().hasNext()) {
+		if ((portObject1 != null) && portObject1.getLinkedPorts().iterator().hasNext()) {
 			log.debug("stop adding OnosDevice: {} due to there is a link to: {}",
 					onosDevice, portObject1.getLinkedPorts().iterator().next().getPortId());
 			return;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java b/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java
index 7c8541d..a9088de 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java
@@ -111,7 +111,12 @@
 	private void deleteDeviceOnPort(Long dpid, Short number)
 	{
 		IPortObject srcPortObject = op.searchPort(HexString.toHexString(dpid), number);
-		if (srcPortObject.getDevices().iterator().hasNext()) {
+		if (srcPortObject == null)
+		    return;
+		Iterable<IDeviceObject> devices = srcPortObject.getDevices();
+		if (devices == null)
+		    return;
+		if (devices.iterator().hasNext()) {
 			for (IDeviceObject deviceObject: srcPortObject.getDevices()) {
 				srcPortObject.removeDevice(deviceObject);
 				log.debug("delete Device "+ deviceObject.getMACAddress() +