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 <christopher.l.shan...@gmail.com> Authored: Sun Aug 9 09:39:14 2015 -0400 Committer: Christopher L. Shannon <christopher.l.shan...@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(); } }