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 d10c0648bc..8d1910478f 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 @@ -1733,7 +1733,8 @@ public abstract class MessageDatabase extends ServiceSupport implements BrokerSe } if (lastUpdate != null) { - gcCandidateSet.remove(lastUpdate.getDataFileId()); + // we won't delete past the last update, ackCompaction journal can be a candidate in error + gcCandidateSet.removeAll(new TreeSet(gcCandidateSet.tailSet(lastUpdate.getDataFileId()))); } // Don't GC files under replication