From 12ebcb83ccc220661772361671dc8a1e41c3353d Mon Sep 17 00:00:00 2001 From: Matt Pavlovich Date: Fri, 31 Jul 2026 16:06:32 -0500 Subject: [PATCH] [#2271] Update Producer getDeliveryDelay() to always return zero (0) - Fixes messagehub jms pool w/ Spring Boot --- .../apache/activemq/ActiveMQMessageProducerSupport.java | 2 +- .../main/java/org/apache/activemq/ActiveMQProducer.java | 2 +- .../org/apache/activemq/jms/pool/PooledProducer.java | 2 +- .../apache/activemq/ra/InboundMessageProducerProxy.java | 2 +- .../apache/activemq/jms2/ActiveMQJMS2ContextTest.java | 9 +++++++-- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducerSupport.java b/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducerSupport.java index 5816d70e30c..ab5e21cf0f8 100644 --- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducerSupport.java +++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageProducerSupport.java @@ -68,7 +68,7 @@ public void setDeliveryDelay(long deliveryDelay) throws JMSException { */ @Override public long getDeliveryDelay() throws JMSException { - throw new UnsupportedOperationException("getDeliveryDelay() is not supported"); + return 0L; } /** diff --git a/activemq-client/src/main/java/org/apache/activemq/ActiveMQProducer.java b/activemq-client/src/main/java/org/apache/activemq/ActiveMQProducer.java index abf74930242..a1046d85e09 100644 --- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQProducer.java +++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQProducer.java @@ -251,7 +251,7 @@ public JMSProducer setDeliveryDelay(long deliveryDelay) { @Override public long getDeliveryDelay() { - throw new UnsupportedOperationException("getDeliveryDelay() is not supported"); + return 0L; } @Override diff --git a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledProducer.java b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledProducer.java index 1d1176f5257..1d4adc59598 100644 --- a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledProducer.java +++ b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/PooledProducer.java @@ -156,7 +156,7 @@ public void setDeliveryDelay(long deliveryDelay) throws JMSException { */ @Override public long getDeliveryDelay() throws JMSException { - throw new UnsupportedOperationException("getDeliveryDelay() is not supported"); + return 0L; } @Override diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/InboundMessageProducerProxy.java b/activemq-ra/src/main/java/org/apache/activemq/ra/InboundMessageProducerProxy.java index f99e1cef497..7f8743cb30e 100644 --- a/activemq-ra/src/main/java/org/apache/activemq/ra/InboundMessageProducerProxy.java +++ b/activemq-ra/src/main/java/org/apache/activemq/ra/InboundMessageProducerProxy.java @@ -218,6 +218,6 @@ public void setDeliveryDelay(long deliveryDelay) throws JMSException { */ @Override public long getDeliveryDelay() throws JMSException { - throw new UnsupportedOperationException("getDeliveryDelay() is not supported"); + return 0L; } } diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/jms2/ActiveMQJMS2ContextTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/jms2/ActiveMQJMS2ContextTest.java index b5f54679314..5334546aa56 100644 --- a/activemq-unit-tests/src/test/java/org/apache/activemq/jms2/ActiveMQJMS2ContextTest.java +++ b/activemq-unit-tests/src/test/java/org/apache/activemq/jms2/ActiveMQJMS2ContextTest.java @@ -289,9 +289,14 @@ public void testSessionSharedDurableConsumerSelector() throws JMSException { session.createSharedDurableConsumer(session.createTopic("test"), null, null); } - @Test(expected = UnsupportedOperationException.class) + @Test public void testProducerDeliveryDelayGet() throws JMSException { - messageProducer.getDeliveryDelay(); + assertEquals(0L, messageProducer.getDeliveryDelay()); + } + + @Test(expected = UnsupportedOperationException.class) + public void testProducerDeliveryDelaySetZero() throws JMSException { + messageProducer.setDeliveryDelay(0L); } @Test(expected = UnsupportedOperationException.class)