Repository: activemq Updated Branches: refs/heads/activemq-5.13.x 724a0e85f -> 9c82756ca
https://issues.apache.org/jira/browse/AMQ-6083 - resolve some test regressions - AMQ2149Test - fail to start with missing data file. Ensure ack map is always saved on modification (cherry picked from commit 31d99b6aa92aed27acfd90a4d2a278c077a47a33) Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/9c82756c Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/9c82756c Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/9c82756c Branch: refs/heads/activemq-5.13.x Commit: 9c82756ca9e61b202cb2c6695bcc585634d90297 Parents: 724a0e8 Author: gtully <[email protected]> Authored: Fri Dec 11 13:30:55 2015 +0000 Committer: Timothy Bish <[email protected]> Committed: Fri Dec 11 09:53:22 2015 -0500 ---------------------------------------------------------------------- .../java/org/apache/activemq/store/kahadb/MessageDatabase.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/9c82756c/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 2e17a69..6a98cce 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 @@ -1739,6 +1739,7 @@ public abstract class MessageDatabase extends ServiceSupport implements BrokerSe LOG.trace("gc candidates: " + gcCandidateSet); LOG.trace("ackMessageFileMap: " + metadata.ackMessageFileMap); } + boolean ackMessageFileMapMod = false; Iterator<Integer> candidates = gcCandidateSet.iterator(); while (candidates.hasNext()) { Integer candidate = candidates.next(); @@ -1752,7 +1753,7 @@ public abstract class MessageDatabase extends ServiceSupport implements BrokerSe } } if (gcCandidateSet.contains(candidate)) { - metadata.ackMessageFileMap.remove(candidate); + ackMessageFileMapMod |= (metadata.ackMessageFileMap.remove(candidate) != null); } else { if (LOG.isTraceEnabled()) { LOG.trace("not removing data file: " + candidate @@ -1767,7 +1768,6 @@ public abstract class MessageDatabase extends ServiceSupport implements BrokerSe LOG.debug("Cleanup removing the data files: " + gcCandidateSet); } journal.removeDataFiles(gcCandidateSet); - boolean ackMessageFileMapMod = false; for (Integer candidate : gcCandidateSet) { for (Set<Integer> ackFiles : metadata.ackMessageFileMap.values()) { ackMessageFileMapMod |= ackFiles.remove(candidate);
