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

tabish 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 cf9f8fc44f ARTEMIS-5688 set routing-type when creating MQTT 
subscription queue
cf9f8fc44f is described below

commit cf9f8fc44ff4630ae1c644adf21f19317deea32a
Author: Justin Bertram <[email protected]>
AuthorDate: Thu Oct 2 16:08:26 2025 -0500

    ARTEMIS-5688 set routing-type when creating MQTT subscription queue
---
 .../core/protocol/mqtt/MQTTSubscriptionManager.java        |  2 +-
 .../artemis/tests/integration/mqtt5/MQTT5Test.java         | 14 ++++++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git 
a/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTSubscriptionManager.java
 
b/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTSubscriptionManager.java
index 933bc429cf..16a188d47b 100644
--- 
a/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTSubscriptionManager.java
+++ 
b/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTSubscriptionManager.java
@@ -184,7 +184,7 @@ public class MQTTSubscriptionManager {
        */
       boolean durable = session.getVersion() == MQTTVersion.MQTT_5 || 
(session.getVersion() != MQTTVersion.MQTT_5 && !session.isClean());
       if (addressInfo.getRoutingTypes().contains(RoutingType.MULTICAST)) {
-         return 
session.getServerSession().createQueue(QueueConfiguration.of(queue).setAddress(addressInfo.getName()).setFilterString(getMessageFilter(addressInfo.getName())).setDurable(durable));
+         return 
session.getServerSession().createQueue(QueueConfiguration.of(queue).setAddress(addressInfo.getName()).setRoutingType(RoutingType.MULTICAST).setFilterString(getMessageFilter(addressInfo.getName())).setDurable(durable));
       }
 
       if (addressInfo.getRoutingTypes().contains(RoutingType.ANYCAST)) {
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt5/MQTT5Test.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt5/MQTT5Test.java
index f66af71846..83e7092957 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt5/MQTT5Test.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt5/MQTT5Test.java
@@ -924,4 +924,18 @@ public class MQTT5Test extends MQTT5TestSupport {
       producer.connect();
       assertEquals(2, server.getActiveMQServerControl().getSessionCount());
    }
+
+   @Test
+   @Timeout(DEFAULT_TIMEOUT_SEC)
+   public void testSubscriptionQueueRoutingType() throws Exception {
+      String topic = getName();
+      String clientID = "myClientId";
+      server.getAddressSettingsRepository().addMatch(topic, new 
AddressSettings().setDefaultQueueRoutingType(RoutingType.ANYCAST));
+
+      MqttClient subscriber = createPahoClient(clientID);
+      subscriber.connect();
+      subscriber.subscribe(topic, AT_LEAST_ONCE);
+      // ensure the subscription queue uses multicast even though the default 
is anycast
+      assertEquals(RoutingType.MULTICAST, getSubscriptionQueue(topic, 
clientID).getRoutingType());
+   }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to