You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2021/07/13 12:21:02 UTC
[activemq-artemis] branch main updated: ARTEMIS-3383
AMQPMessage.isDurable wrongly returns false during persistent lazy reload
state
This is an automated email from the ASF dual-hosted git repository.
clebertsuconic pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/main by this push:
new ee3814d ARTEMIS-3383 AMQPMessage.isDurable wrongly returns false during persistent lazy reload state
new b4d4ea3 This closes #3650
ee3814d is described below
commit ee3814dbfdb4c3961e6ec6582d9902eb29f539f5
Author: Clebert Suconic <cl...@apache.org>
AuthorDate: Mon Jul 12 22:58:14 2021 -0400
ARTEMIS-3383 AMQPMessage.isDurable wrongly returns false during persistent lazy reload state
---
.../org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java | 4 +++-
.../tests/integration/amqp/journal/AmqpJournalLoadingTest.java | 1 +
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java
index 8606429..18608d9 100644
--- a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java
+++ b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java
@@ -1073,7 +1073,9 @@ public abstract class AMQPMessage extends RefCountMessage implements org.apache.
if (header != null && header .getDurable() != null) {
return header.getDurable();
} else {
- return false;
+ // if header == null and scanninStatus=RELOAD_PERSISTENCE, it means the message can only be durable
+ // even though the parsing hasn't happened yet
+ return getDataScanningStatus() == MessageDataScanningStatus.RELOAD_PERSISTENCE;
}
}
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/journal/AmqpJournalLoadingTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/journal/AmqpJournalLoadingTest.java
index f6e8166..b3c334a 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/journal/AmqpJournalLoadingTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/journal/AmqpJournalLoadingTest.java
@@ -60,6 +60,7 @@ public class AmqpJournalLoadingTest extends AmqpClientTestSupport {
Assert.assertThat(message, Matchers.instanceOf(AMQPMessage.class));
amqpMessage = (AMQPMessage) message;
Assert.assertEquals(AMQPMessage.MessageDataScanningStatus.RELOAD_PERSISTENCE, amqpMessage.getDataScanningStatus());
+ Assert.assertTrue(amqpMessage.isDurable());
}
AmqpClient client = createAmqpClient();