You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cs...@apache.org on 2015/08/09 15:40:25 UTC

activemq git commit: AMQ-5748 - Cleanup and clearing cache on shutdown

Repository: activemq
Updated Branches:
  refs/heads/master a49d46e3c -> c6542a921


AMQ-5748 - Cleanup and clearing cache on shutdown


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/c6542a92
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/c6542a92
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/c6542a92

Branch: refs/heads/master
Commit: c6542a921b7b9fd09ca965761cfb90f2cffca930
Parents: a49d46e
Author: Christopher L. Shannon <ch...@gmail.com>
Authored: Sun Aug 9 09:39:14 2015 -0400
Committer: Christopher L. Shannon <ch...@gmail.com>
Committed: Sun Aug 9 09:39:14 2015 -0400

----------------------------------------------------------------------
 .../store/memory/MemoryMessageStore.java        | 21 ++++++++++++--------
 .../store/memory/MemoryTopicMessageStore.java   |  5 +----
 .../activemq/store/kahadb/MessageDatabase.java  |  2 ++
 3 files changed, 16 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/c6542a92/activemq-broker/src/main/java/org/apache/activemq/store/memory/MemoryMessageStore.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/store/memory/MemoryMessageStore.java b/activemq-broker/src/main/java/org/apache/activemq/store/memory/MemoryMessageStore.java
index 3989646..6fc7fbd 100755
--- a/activemq-broker/src/main/java/org/apache/activemq/store/memory/MemoryMessageStore.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/store/memory/MemoryMessageStore.java
@@ -31,6 +31,7 @@ import org.apache.activemq.command.MessageId;
 import org.apache.activemq.store.IndexListener;
 import org.apache.activemq.store.MessageRecoveryListener;
 import org.apache.activemq.store.AbstractMessageStore;
+import org.apache.activemq.store.MessageStoreStatistics;
 
 /**
  * An implementation of {@link org.apache.activemq.store.MessageStore} which
@@ -57,7 +58,7 @@ public class MemoryMessageStore extends AbstractMessageStore {
     public synchronized void addMessage(ConnectionContext context, Message message) throws IOException {
         synchronized (messageTable) {
             messageTable.put(message.getMessageId(), message);
-            incMessageStoreStatistics(message);
+            incMessageStoreStatistics(getMessageStoreStatistics(), message);
         }
         message.incrementReferenceCount();
         message.getMessageId().setFutureOrSequenceLong(sequenceId++);
@@ -93,7 +94,7 @@ public class MemoryMessageStore extends AbstractMessageStore {
             Message removed = messageTable.remove(msgId);
             if( removed !=null ) {
                 removed.decrementReferenceCount();
-                decMessageStoreStatistics(removed);
+                decMessageStoreStatistics(getMessageStoreStatistics(), removed);
             }
             if ((lastBatchId != null && lastBatchId.equals(msgId)) || messageTable.isEmpty()) {
                 lastBatchId = null;
@@ -198,14 +199,18 @@ public class MemoryMessageStore extends AbstractMessageStore {
         }
     }
 
-    protected final void incMessageStoreStatistics(Message message) {
-        getMessageStoreStatistics().getMessageCount().increment();
-        getMessageStoreStatistics().getMessageSize().addSize(message.getSize());
+    protected static final void incMessageStoreStatistics(final MessageStoreStatistics stats, final Message message) {
+        if (stats != null && message != null) {
+            stats.getMessageCount().increment();
+            stats.getMessageSize().addSize(message.getSize());
+        }
     }
 
-    protected final void decMessageStoreStatistics(Message message) {
-        getMessageStoreStatistics().getMessageCount().decrement();
-        getMessageStoreStatistics().getMessageSize().addSize(-message.getSize());
+    protected static final void decMessageStoreStatistics(final MessageStoreStatistics stats, final Message message) {
+        if (stats != null && message != null) {
+            stats.getMessageCount().decrement();
+            stats.getMessageSize().addSize(-message.getSize());
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/activemq/blob/c6542a92/activemq-broker/src/main/java/org/apache/activemq/store/memory/MemoryTopicMessageStore.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/store/memory/MemoryTopicMessageStore.java b/activemq-broker/src/main/java/org/apache/activemq/store/memory/MemoryTopicMessageStore.java
index 142547f..76199d7 100755
--- a/activemq-broker/src/main/java/org/apache/activemq/store/memory/MemoryTopicMessageStore.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/store/memory/MemoryTopicMessageStore.java
@@ -182,10 +182,7 @@ public class MemoryTopicMessageStore extends MemoryMessageStore implements Topic
 
         @Override
         protected void onCacheEviction(Map.Entry<MessageId, Message> eldest) {
-            if (messageStoreStatistics != null) {
-                messageStoreStatistics.getMessageCount().decrement();
-                messageStoreStatistics.getMessageSize().addSize(-eldest.getValue().getSize());
-            }
+            decMessageStoreStatistics(messageStoreStatistics, eldest.getValue());
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/activemq/blob/c6542a92/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java
----------------------------------------------------------------------
diff --git a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java
index 5a36da1..ac767a7 100644
--- a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java
+++ b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java
@@ -446,6 +446,8 @@ public abstract class MessageDatabase extends ServiceSupport implements BrokerSe
                     checkpointThread.join();
                 }
             }
+            //clear the cache on shutdown of the store
+            storeCache.clear();
         }
     }