Merge pull request #16 from y-higuchi/RAMCloud-yoshi

Recover lost difference from master
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 9ec828d..1f36615 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
@@ -116,7 +116,12 @@
 	private void deleteDeviceOnPort(Long dpid, Short number)
 	{
 		IPortObject srcPortObject = dbop.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() +
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java
index 340bbd8..f0441b5 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java
@@ -159,7 +159,7 @@
 			@Override
 			public void run() {
 				PerfMon pm = PerfMon.getInstance();
-				log.debug("[BEFORE] {}", topology.toString());
+				log.debug("[BEFORE] {}", topology);
 				long begin, end;
 				synchronized(topology) {
 					begin = System.nanoTime();
@@ -169,7 +169,7 @@
 					end = System.nanoTime();
 				}
 				// FIXME level raised for measurement. Was debug
-				log.error("[AFTER] {}", topology.toString());
+				log.error("[AFTER] {}", topology);
 				log.error("refresh takes : {}[us]", (end - begin) / 1000.0);
 			}
 		}, refreshTopologyDelay, refreshTopologyInterval);