Adding more topology manager/store implementation.
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkManager.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkManager.java
index d900c5b..1930ea1 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkManager.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkManager.java
@@ -36,8 +36,8 @@
 @Component(immediate = true)
 @Service
 public class SimpleLinkManager
-extends AbstractProviderRegistry<LinkProvider, LinkProviderService>
-implements LinkService, LinkAdminService, LinkProviderRegistry {
+        extends AbstractProviderRegistry<LinkProvider, LinkProviderService>
+        implements LinkService, LinkAdminService, LinkProviderRegistry {
 
     private static final String DEVICE_ID_NULL = "Device ID cannot be null";
     private static final String LINK_DESC_NULL = "Link description cannot be null";
@@ -46,7 +46,7 @@
     private final Logger log = getLogger(getClass());
 
     private final AbstractListenerRegistry<LinkEvent, LinkListener>
-    listenerRegistry = new AbstractListenerRegistry<>();
+            listenerRegistry = new AbstractListenerRegistry<>();
 
     private final SimpleLinkStore store = new SimpleLinkStore();
 
@@ -79,7 +79,7 @@
     public Set<Link> getDeviceLinks(DeviceId deviceId) {
         checkNotNull(deviceId, DEVICE_ID_NULL);
         return Sets.union(store.getDeviceEgressLinks(deviceId),
-                store.getDeviceIngressLinks(deviceId));
+                          store.getDeviceIngressLinks(deviceId));
     }
 
     @Override
@@ -98,7 +98,7 @@
     public Set<Link> getLinks(ConnectPoint connectPoint) {
         checkNotNull(connectPoint, CONNECT_POINT_NULL);
         return Sets.union(store.getEgressLinks(connectPoint),
-                store.getIngressLinks(connectPoint));
+                          store.getIngressLinks(connectPoint));
     }
 
     @Override
@@ -146,8 +146,9 @@
     }
 
     // Personalized link provider service issued to the supplied provider.
-    private class InternalLinkProviderService extends AbstractProviderService<LinkProvider>
-    implements LinkProviderService {
+    private class InternalLinkProviderService
+            extends AbstractProviderService<LinkProvider>
+            implements LinkProviderService {
 
         InternalLinkProviderService(LinkProvider provider) {
             super(provider);
@@ -157,27 +158,31 @@
         public void linkDetected(LinkDescription linkDescription) {
             checkNotNull(linkDescription, LINK_DESC_NULL);
             checkValidity();
-            log.debug("Link {} detected", linkDescription);
             LinkEvent event = store.createOrUpdateLink(provider().id(),
-                    linkDescription);
-            post(event);
+                                                       linkDescription);
+            if (event != null) {
+                log.debug("Link {} detected", linkDescription);
+                post(event);
+            }
         }
 
         @Override
         public void linkVanished(LinkDescription linkDescription) {
             checkNotNull(linkDescription, LINK_DESC_NULL);
             checkValidity();
-            log.info("Link {} vanished", linkDescription);
             LinkEvent event = store.removeLink(linkDescription.src(),
-                    linkDescription.dst());
-            post(event);
+                                               linkDescription.dst());
+            if (event != null) {
+                log.info("Link {} vanished", linkDescription);
+                post(event);
+            }
         }
 
         @Override
         public void linksVanished(ConnectPoint connectPoint) {
             checkNotNull(connectPoint, "Connect point cannot be null");
             checkValidity();
-            log.info("Link for connection point {} vanished", connectPoint);
+            log.info("Links for connection point {} vanished", connectPoint);
             removeLinks(getLinks(connectPoint));
         }
 
@@ -185,7 +190,7 @@
         public void linksVanished(DeviceId deviceId) {
             checkNotNull(deviceId, DEVICE_ID_NULL);
             checkValidity();
-            log.info("Link for device {} vanished", deviceId);
+            log.info("Links for device {} vanished", deviceId);
             removeLinks(getDeviceLinks(deviceId));
         }
     }
@@ -200,7 +205,7 @@
 
     // Posts the specified event to the local event dispatcher.
     private void post(LinkEvent event) {
-        if (event != null && eventDispatcher != null) {
+        if (event != null) {
             eventDispatcher.post(event);
         }
     }