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 2022/01/14 20:06:51 UTC

[activemq-artemis] 16/47: ARTEMIS-3553 -5718 Conversion of AMQP large message expiry

This is an automated email from the ASF dual-hosted git repository.

clebertsuconic pushed a commit to branch 2.19.x
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git

commit 56e9dafedd88cdda5697d7d0968d6f80f72c3613
Author: Clebert Suconic <cl...@apache.org>
AuthorDate: Wed Nov 3 21:07:47 2021 -0400

    ARTEMIS-3553 -5718 Conversion of AMQP large message expiry
    
    (cherry picked from commit 6de637259b5cd8356b510bde9227dcd7e22e966c)
---
 .../artemis/protocol/amqp/broker/AMQPLargeMessage.java     |  3 +++
 .../tests/integration/amqp/AmqpExpiredMessageTest.java     | 14 +++++++++++---
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPLargeMessage.java b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPLargeMessage.java
index 36b03ea..1026eeb 100644
--- a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPLargeMessage.java
+++ b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPLargeMessage.java
@@ -70,6 +70,9 @@ public class AMQPLargeMessage extends AMQPMessage implements LargeServerMessage
          reader.readInto(wrapbuffer);
 
          AMQPStandardMessage standardMessage = new AMQPStandardMessage(messageFormat, buffer, extraProperties, coreMessageObjectPools);
+         if (this.getExpiration() > 0) {
+            standardMessage.reloadExpiration(this.getExpiration());
+         }
          standardMessage.setMessageAnnotations(messageAnnotations);
          standardMessage.setMessageID(messageID);
          return standardMessage.toCore();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpExpiredMessageTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpExpiredMessageTest.java
index d52ab17..a9c5d5c 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpExpiredMessageTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpExpiredMessageTest.java
@@ -643,6 +643,17 @@ public class AmqpExpiredMessageTest extends AmqpClientTestSupport {
          server.start();
       }
 
+      final Queue serverQueue = server.locateQueue(getQueueName());
+
+      try (LinkedListIterator<MessageReference> referenceIterator = serverQueue.iterator()) {
+         while (referenceIterator.hasNext()) {
+            MessageReference ref = referenceIterator.next();
+            Assert.assertEquals(ref.getMessage().getExpiration(), ref.getMessage().toCore().getExpiration());
+            Assert.assertTrue(ref.getMessage().getExpiration() > 0);
+            Assert.assertTrue(ref.getMessage().toCore().getExpiration() > 0);
+         }
+      }
+
       final Queue dlqView = getProxyToQueue(getDeadLetterAddress());
 
       Wait.assertEquals(2, dlqView::getMessageCount);
@@ -729,7 +740,4 @@ public class AmqpExpiredMessageTest extends AmqpClientTestSupport {
 
    }
 
-
-
-
 }