diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/INetMapTopologyObjects.java b/src/main/java/net/onrc/onos/ofcontroller/core/INetMapTopologyObjects.java
index 29c4377..a6203ba 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/INetMapTopologyObjects.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/INetMapTopologyObjects.java
@@ -213,7 +213,7 @@
 		public void setIpv4Address(int ipv4Address);
 		
 		@JsonIgnore
-		@GremlinGroovy("it.in('hasAddress')")
+		@Adjacency(label = "hasAddress", direction = Direction.IN)
 		public IDeviceObject getDevice();
 	}
 	
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 36e1c5e..67b3ff0 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
@@ -437,17 +437,22 @@
 		// get source port vertex
 		String dpid = HexString.toHexString(lt.getSrc());
 		short port = lt.getSrcPort();
+		log.debug("addLinkImpl Src dpid : " + dpid + " port :" + port);
 		vportSrc = dbop.searchPort(dpid, port);
 		
 		// get dest port vertex
 		dpid = HexString.toHexString(lt.getDst());
 		port = lt.getDstPort();
+		log.debug("addLinkImpl Dst dpid : " + dpid + " port :" + port);
 		vportDst = dbop.searchPort(dpid, port);
-		            
+		
+		log.debug("addLinkImpl vportSrc : " + vportSrc + " vportDst : " + vportDst);
+		
 		if (vportSrc != null && vportDst != null) {
 			IPortObject portExist = null;
 			// check if the link exists
 			for (IPortObject V : vportSrc.getLinkedPorts()) {
+			        log.debug("vportSrc.getLinkedPorts() :" + V);
 				if (V.equals(vportDst)) {
 					portExist = V;
 					break;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/internal/SwitchStorageImpl.java b/src/main/java/net/onrc/onos/ofcontroller/core/internal/SwitchStorageImpl.java
index 6599366..1f7f783 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/internal/SwitchStorageImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/internal/SwitchStorageImpl.java
@@ -438,7 +438,7 @@
     		// and takes forever.
     		boolean attached = false;
     		for (IPortObject portsOnSwitch : sw.getPorts()) {
-    			if (portsOnSwitch.getPortId() == portObject.getPortId()) {
+    			if (portsOnSwitch.getPortId().equals(portObject.getPortId())) {
     				attached = true;
     				break;
     			}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
index 95185b9..ec27a0f 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
@@ -642,7 +642,9 @@
 	FlowEntry flowEntry = new FlowEntry();
 	flowEntry.setFlowEntryId(new FlowEntryId(flowEntryIdStr));
 	flowEntry.setDpid(new Dpid(switchDpidStr));
-
+	flowEntry.setIdleTimeout(idleTimeout);
+	flowEntry.setHardTimeout(hardTimeout);
+	
 	//
 	// Extract the match conditions
 	//
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
index 0f9ed91..9df6cae 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
@@ -376,7 +376,7 @@
 					 FlowEntryId flowEntryId) {
 	// Find the Flow Entry
 	FlowEntry flowEntry = datagridService.getFlowEntry(flowEntryId);
-	if (flowEntryId == null)
+	if (flowEntry == null)
 	    return;		// Flow Entry not found
 
 	// Find the Flow Path
