mirror of https://github.com/apache/activemq.git
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 31d99b6aa9
)
This commit is contained in:
parent
724a0e85f3
commit
9c82756ca9
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue