tabish121 commented on a change in pull request #3036: ARTEMIS-2669 Improve
AMQPStandardMessage::reencode on depaging not durable messages
URL: https://github.com/apache/activemq-artemis/pull/3036#discussion_r395807413
##########
File path:
artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java
##########
@@ -837,16 +837,26 @@ protected synchronized void
lazyScanAfterReloadPersistence() {
messageDataScanned = MessageDataScanningStatus.SCANNED.code;
modified = false;
+ makeDurable();
+ }
+
+ private void makeDurable() {
+ assert messageDataScanned == MessageDataScanningStatus.SCANNED.code;
// Message state should reflect that is came from persistent storage
which
// can happen when moved to a durable location. We must re-encode here
to
// avoid a subsequent redelivery from suddenly appearing with a durable
header
// tag when the initial delivery did not.
if (!isDurable()) {
Review comment:
The change I made was to stabilize what was already happening where on
reload from persistence the broker tagged the durable flag in AMQPMessage as
true and then depending on other factors in the message content and redelivery
state it would sometimes pop out marked with a durable header and other times
not. I chose to preserve the behaviour that happened the most which was that
the message reappeared with a re-encode that resulted in a Header being
applied.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services