Fixed the handling of removeDevice events to ensure devices are removed from the database
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 256008a..ed6d85f 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
@@ -114,6 +114,10 @@
 		IDeviceObject dev;
 		try {
 			if ((dev = ope.searchDevice(device.getMACAddressString())) != null) {
+				for (IIpv4Address ipv4AddressVertex : dev.getIpv4Addresses()) {
+					ope.removeIpv4Address(ipv4AddressVertex);
+				}
+				
              	ope.removeDevice(dev);
              	ope.commit();
             	log.error("DeviceStorage:removeDevice mac:{} done", device.getMACAddressString());
diff --git a/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java b/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
index 14cffd8..c1f66d9 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
@@ -273,6 +273,7 @@
 	@Override
 	public void deviceRemoved(IDevice device) {
 		// TODO Auto-generated method stub
+		devStore.removeDevice(device);
 	}
 
 	@Override