[ 
https://issues.apache.org/jira/browse/ARTEMIS-4370?focusedWorklogId=872641&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-872641
 ]

ASF GitHub Bot logged work on ARTEMIS-4370:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 24/Jul/23 17:55
            Start Date: 24/Jul/23 17:55
    Worklog Time Spent: 10m 
      Work Description: jbertram merged PR #4563:
URL: https://github.com/apache/activemq-artemis/pull/4563




Issue Time Tracking
-------------------

    Worklog Id:     (was: 872641)
    Time Spent: 40m  (was: 0.5h)

> 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
>            Assignee: Justin Bertram
>            Priority: Major
>             Fix For: 2.31.0
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> 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)

Reply via email to