Péter Kerekes created ARTEMIS-5576:
--------------------------------------

             Summary: Backslash in the  address/queue name
                 Key: ARTEMIS-5576
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-5576
             Project: ActiveMQ Artemis
          Issue Type: Bug
          Components: OpenWire
    Affects Versions: 2.41.0, 2.39.0
            Reporter: Péter Kerekes


Using the 2.31.0 version over OpenWire a consumer subscibes to a queue having \ 
in the name e.g foo\foo. According to the web console, this internally 
generates the foo\\foo address and queue name.

When a producer send message to the foo\foo this also generates the foo\foo 
queue name internally.

But with version 2.39.0 2.41.0 (the other version was not tested by me) the 
situation is the following:

Subscibing to the foo\foo internally generates the foo\\\\foo address and queue 
name, but 

sending message to the foo\foo sends messages to the foo\\foo address, so they 
can not communicate with each other.

I think maybe the problem relates to the this commit 
[https://github.com/jbertram/activemq-artemis/commit/45434e848e597a36fd97ca6faf9ccc968b5891a6#diff-9c5fa40bb8a34caf64b426b440d5c1a91f08de680a89efa344a87959fd71794c.]

The 
*[WildcardConfiguration.java|https://github.com/jbertram/activemq-artemis/commit/45434e848e597a36fd97ca6faf9ccc968b5891a6#diff-9c5fa40bb8a34caf64b426b440d5c1a91f08de680a89efa344a87959fd71794c]*
  has been changed, and the new convert function calls the escape function when 
the already escaped \ escaped again:


private String escape(final String input, WildcardConfiguration from) {

     String result = input.replace(escapeString, escapeString + escapeString);

This convert function is called from the AMQConsumer.java:
SimpleString destinationName = 
SimpleString.of(session.convertWildcard(openwireDestination));

,but the message sending functions use the unescaped address, because it is not 
converted.

I think that this escaping \ to \\ is unnecesary in the convert if the \ 
already has been escaped earlier.

Using \ in the name is not so common, but I have not find any information that 
the \ is not allowed in the address or queue name, that's why we started to use 
the Windows domain name with \ as the name.

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
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