integrated and added checks to avoid duplicate links
diff --git a/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
index 68633b1..3bb6c87 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
@@ -68,22 +68,26 @@
 		Vertex sw;
 		try {
             if ((sw = graph.getVertices("dpid",dpid).iterator().next()) != null) {
-            	log.info("SwitchStorage:addPort dpid:{} port:{}", dpid, port);
+            	log.info("SwitchStorage:addPort dpid:{} port:{}", dpid, port.getPortNumber());
             	// TODO: Check if port exists
-            	Vertex p = graph.addVertex(null);
-            	p.setProperty("type","port");
-            	p.setProperty("number",port.getPortNumber());
-            	p.setProperty("state",port.getState());
-            	p.setProperty("desc",port.getName());
-            	Edge e = graph.addEdge(null, sw, p, "on");
-            	e.setProperty("state","ACTIVE");
-            	e.setProperty("number", port.getPortNumber());
-            	
-            	graph.stopTransaction(Conclusion.SUCCESS);
+            	if (sw.query().direction(Direction.OUT).labels("on").has("number",port.getPortNumber()).vertices().iterator().hasNext()) {
+            		//TODO: Do nothing for now 
+            	} else {
+            		Vertex p = graph.addVertex(null);
+            		p.setProperty("type","port");
+            		p.setProperty("number",port.getPortNumber());
+            		p.setProperty("state",port.getState());
+            		p.setProperty("desc",port.getName());
+            		Edge e = graph.addEdge(null, sw, p, "on");
+            		e.setProperty("state","ACTIVE");
+            		e.setProperty("number", port.getPortNumber());
+                     	
+            		graph.stopTransaction(Conclusion.SUCCESS);
+            	}
             }
 		} catch (TitanException e) {
              // TODO: handle exceptions
-			log.info("SwitchStorage:addPort dpid:{} port:{}", dpid, port);
+			log.info("SwitchStorage:addPort dpid:{} port:{}", dpid, port.getPortNumber());
 		}	
 
 	}
@@ -186,7 +190,7 @@
 		db.setProperty("storage.hostname","127.0.0.1");
         graph = TitanFactory.open(db);
         
-        // FIXME: 
+        // FIXME: Creation on Indexes should be done only once
         Set<String> s = graph.getIndexedKeys(Vertex.class);
         if (!s.contains("dpid")) {
            graph.createKeyIndex("dpid", Vertex.class);