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 <[email protected]> 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 { } - - - }
