Dhiraj Bokde created AMQ-5074:
---------------------------------
Summary: MQTT paths with empty levels are not handled correctly
Key: AMQ-5074
URL: https://issues.apache.org/jira/browse/AMQ-5074
Project: ActiveMQ
Issue Type: Bug
Components: MQTT
Affects Versions: 5.9.0
Reporter: Dhiraj Bokde
Fix For: 5.10.0
MQTT allows empty "" names for path levels, for example /TopicA has two levels,
"" and TopicA, similarly TopicA/ has two levels TopicA and "". The leading and
trailing '/' in MQTT is significant.
The '/' character in MQTT paths and filters is mapped to '.' in ActiveMQ, which
leads to names like '.TopicA' and 'TopicA.'. However, ActiveMQ ignores empty
path levels, although, they are just as significant for ActiveMQ. Although
these path names are not common in ActiveMQ, which maybe the reason why the
issue hasn't been discovered until now.
ActiveMQ needs to treat empty levels as significant, and pattern match
accordingly. This requires change to ActiveMQDestination.getDestinationPaths()
and some code cleanup in DestinationMap related classes and Destination
filtering classes. A patch is attached (along with unit tests) to address this
issue.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)