Single Graph handle across all controller
diff --git a/src/main/java/net/onrc/onos/util/GraphDBUtils.java b/src/main/java/net/onrc/onos/util/GraphDBUtils.java
index eea57fd..3409f59 100644
--- a/src/main/java/net/onrc/onos/util/GraphDBUtils.java
+++ b/src/main/java/net/onrc/onos/util/GraphDBUtils.java
@@ -38,7 +38,7 @@
 		// TODO Auto-generated method stub
 		FramedGraph<TitanGraph> fg = conn.getFramedGraph();
 		
-		return fg.getVertices("dpid",dpid).iterator().hasNext() ? 
+		return (fg != null && fg.getVertices("dpid",dpid).iterator().hasNext()) ? 
 				fg.getVertices("dpid",dpid,ISwitchObject.class).iterator().next() : null;
     			
 	}
@@ -47,7 +47,7 @@
 	public IDeviceObject searchDevice(GraphDBConnection conn, String macAddr) {
 		// TODO Auto-generated method stub
 		FramedGraph<TitanGraph> fg = conn.getFramedGraph();	
-		return fg.getVertices("dl_address",macAddr).iterator().hasNext() ? fg.getVertices("dl_address",macAddr,
+		return (fg != null && fg.getVertices("dl_address",macAddr).iterator().hasNext()) ? fg.getVertices("dl_address",macAddr,
     			IDeviceObject.class).iterator().next() : null;
     			
 	}
@@ -58,6 +58,9 @@
 //		if (sw != null) {
 //			
 //			IPortObject port = null;
+//			
+			// Requires Frames 2.3.0
+//			
 //			try {
 //				port = sw.getPort(number);
 //			} catch (Exception e) {
@@ -67,12 +70,15 @@
 //			
 //			return port;
 //		}
-//		return null;
-		GremlinPipeline<Vertex, IPortObject> pipe = new GremlinPipeline<Vertex, IPortObject>();
-		pipe.start(sw.asVertex());
-	    pipe.out("on").has("number", number);
-	    FramedVertexIterable<IPortObject> r = new FramedVertexIterable<IPortObject>(conn.getFramedGraph(), (Iterable) pipe, IPortObject.class);
-	    return r.iterator().hasNext() ? r.iterator().next() : null;
+		
+		if (sw != null) {
+			GremlinPipeline<Vertex, IPortObject> pipe = new GremlinPipeline<Vertex, IPortObject>();
+			pipe.start(sw.asVertex());
+			pipe.out("on").has("number", number);
+			FramedVertexIterable<IPortObject> r = new FramedVertexIterable<IPortObject>(conn.getFramedGraph(), (Iterable) pipe, IPortObject.class);
+			return r != null && r.iterator().hasNext() ? r.iterator().next() : null;
+		}
+		return null;
 	}
 
 	@Override
@@ -93,19 +99,19 @@
 	public void removePort(GraphDBConnection conn, IPortObject port) {
 		FramedGraph<TitanGraph> fg = conn.getFramedGraph();	
 //		EventGraph<TitanGraph> eg = conn.getEventGraph();
-		fg.removeVertex(port.asVertex());		
+		if (fg != null) fg.removeVertex(port.asVertex());		
 	}
 
 	@Override
 	public void removeDevice(GraphDBConnection conn, IDeviceObject dev) {
 		FramedGraph<TitanGraph> fg = conn.getFramedGraph();	
-		fg.removeVertex(dev.asVertex());		
+		if (fg != null) fg.removeVertex(dev.asVertex());		
 	}
 
 	@Override
 	public Iterable<IDeviceObject> getDevices(GraphDBConnection conn) {
 		FramedGraph<TitanGraph> fg = conn.getFramedGraph();	
-		return fg.getVertices("type","device",IDeviceObject.class);
+		return fg != null ? fg.getVertices("type","device",IDeviceObject.class) : null;
 	}
 
 	@Override