[ https://issues.apache.org/jira/browse/ARTEMIS-4370?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Justin Bertram updated ARTEMIS-4370: ------------------------------------ Summary: Publishing message with existing topic alias and different topic causes message to be sent to incorrect topic (was: Sendig publish message with existing topic alias and different topic causes message to be sent to incorrect topic) > Publishing message with existing topic alias and different topic causes > message to be sent to incorrect topic > ------------------------------------------------------------------------------------------------------------- > > Key: ARTEMIS-4370 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4370 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: MQTT > Affects Versions: 2.29.0 > Reporter: Adam Zyzak > Priority: Major > > h3. Description > When sending MQTT 5.0 publish message with topic alias number that has > existing mapping for given connection and new topic, Artemis broker will > incorrectly route message to topic from alias mapping instead of topic from > publish message. This is incorrect behavior because broker should route > message to topic from publish message and update alias mapping with new > topic. > Section 3.3.2.3.4 Topic Alias in MQTT 5.0 specification states the following: > {code:java} > A sender can modify the Topic Alias mapping by sending another PUBLISH in the > same Network Connection with the same Topic Alias value and a different > non-zero length Topic Name. {code} > > h3. Steps to reproduce > # Create 2 MQTT subscribers: first on topic1 and second on topic2 > # Create 1 MQTT publisher > # From publisher send publish message on topic1 with MQTT property > TOPIC_ALIAS set to 1 > # From publisher send publish message on topic2 with MQTT property > TOPIC_ALIAS set to 1 > h3. Current result > First message is correctly routed to topic1, but second message is > incorrectly routed to topic1 instead of topic2 > Method > org.apache.activemq.artemis.core.protocol.mqtt.MQTTPublishManager#sendToQueue > adds mapping only if alias does not exist > h3. Expected result > Topic field in MQTT publish should have priority over TOPIC_ALIAS property. > Topic alias stored under existing alias number should be updated. -- This message was sent by Atlassian Jira (v8.20.10#820010)