diff --git a/core/store/dist/src/main/java/org/onosproject/store/cfg/GossipComponentConfigStore.java b/core/store/dist/src/main/java/org/onosproject/store/cfg/GossipComponentConfigStore.java
index 94e17b1..13690d4 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/cfg/GossipComponentConfigStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/cfg/GossipComponentConfigStore.java
@@ -76,6 +76,7 @@
 
     @Deactivate
     public void deactivate() {
+        properties.destroy();
         log.info("Stopped");
     }
 
diff --git a/core/store/dist/src/main/java/org/onosproject/store/ecmap/EventuallyConsistentMapImpl.java b/core/store/dist/src/main/java/org/onosproject/store/ecmap/EventuallyConsistentMapImpl.java
index 62d145d..cf652ff 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/ecmap/EventuallyConsistentMapImpl.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/ecmap/EventuallyConsistentMapImpl.java
@@ -498,7 +498,7 @@
                 return;
             }
 
-            if (underHighLoad()) {
+            if (underHighLoad() || destroyed) {
                 return;
             }
 
@@ -700,10 +700,13 @@
         }
     }
 
-    private final class InternalEventListener implements
-            ClusterMessageHandler {
+    private final class InternalEventListener implements ClusterMessageHandler {
         @Override
         public void handle(ClusterMessage message) {
+            if (destroyed) {
+                return;
+            }
+
             log.debug("Received update event from peer: {}", message.sender());
             Collection<AbstractEntry<K, V>> events = serializer.decode(message.payload());
 
diff --git a/core/store/dist/src/main/java/org/onosproject/store/group/impl/DistributedGroupStore.java b/core/store/dist/src/main/java/org/onosproject/store/group/impl/DistributedGroupStore.java
index 1d30607..d6d92a9 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/group/impl/DistributedGroupStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/group/impl/DistributedGroupStore.java
@@ -234,6 +234,9 @@
 
     @Deactivate
     public void deactivate() {
+        groupStoreEntriesByKey.destroy();
+        groupStoreEntriesById.destroy();
+        auditPendingReqQueue.destroy();
         log.info("Stopped");
     }
 
diff --git a/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java b/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java
index 2f17324..e9be1d3 100644
--- a/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java
+++ b/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java
@@ -103,6 +103,7 @@
             try {
                 this.write(m);
             } catch (RejectedExecutionException e) {
+                log.warn(e.getMessage());
                 if (!e.getMessage().contains(SHUTDOWN_MSG)) {
                     throw e;
                 }
@@ -116,6 +117,7 @@
             try {
                 this.write(msgs);
             } catch (RejectedExecutionException e) {
+                log.warn(e.getMessage());
                 if (!e.getMessage().contains(SHUTDOWN_MSG)) {
                     throw e;
                 }
diff --git a/tools/dev/bash_profile b/tools/dev/bash_profile
index 2b05f1b..cd6778f 100644
--- a/tools/dev/bash_profile
+++ b/tools/dev/bash_profile
@@ -52,10 +52,15 @@
 # alias go='ob && ot && onos -w'
 alias pub='onos-push-update-bundle'
 
-# Short-hand for tailing the ONOS (karaf) log 
+# Short-hand for tailing and searching the ONOS (karaf) log
 alias tl='$ONOS_ROOT/tools/dev/bin/onos-local-log'
-alias tlo='tl | grep --colour=always -E -e "org.onlab|org.onosproject"'
 alias ll='less $KARAF_LOG'
+alias gl='grep $KARAF_LOG --colour=auto -E -e '
+
+function filterLog {
+    tl | grep --colour=always -E -e "${1-org.onlab|org.onosproject}"
+}
+alias tlo='filterLog'
 
 # Pretty-print JSON output
 alias pp='python -m json.tool'
