-
Bug
-
Resolution: Obsolete
-
Major
-
None
-
AMQ 7.0.3.GA, AMQ 7.1.0.GA
-
None
-
Documentation (Ref Guide, User Guide, etc.), Release Notes, Compatibility/Configuration
-
Currently AMQ OpenWire JMS clients cannot access queues and address that include the following characters in their name: comma (','), hash ('#'), greater than ('>'), and whitespace.
-
Documented as Known Issue
-
Workaround Exists
-
1) Openwire client can't send or receive to destination with comma in it. Somehow it splits address into two parts based on ','.
java -jar /var/dtests/node_data/clients/aoc7.jar sender --timeout 5 --log-msgs dict --broker tcp://localhost:61616 --conn-username admin --conn-password admin --address 'address_,_name' --count 1 19:44:08,612 ERROR Error while sending a message! javax.jms.InvalidDestinationException: Cannot publish to a non-existent Destination: queue://_name
2) Same as 1) but special symbol is "?"
java -jar /var/dtests/node_data/clients/aoc7.jar sender --timeout 5 --log-msgs dict --broker tcp://localhost:61616 --conn-username admin --conn-password admin --address address_?_name --count 1 19:49:39,031 ERROR Error while sending a message! javax.jms.InvalidDestinationException: AMQ119017: Queue address_ does not exist
3) Receiver client can't "decode?" properly ">" symbol.
Sender sends message to queue correctly, but receiver "translates" ">" into hash "#" and fails to connect to given destination.
java -jar /var/dtests/node_data/clients/amqx.jar queue --host localhost:1099 --action add --name queue_\>_name --address address_\>_name java -jar /var/dtests/node_data/clients/aoc7.jar sender --timeout 5 --log-msgs dict --broker tcp://localhost:61616 --conn-username admin --conn-password admin --address address_\>_name --count 1 java -jar /var/dtests/node_data/clients/aoc7.jar receiver --log-msgs dict --broker tcp://localhost:61616 --conn-username admin --conn-password admin --address address_\>_name::queue_\>_name --count 1 [2017-10-30 11:05:09,200] [INFO] dtestlib.Test :: stdout: 11:08:23,313 ERROR Exception while consuming message! [2017-10-30 11:05:09,200] [INFO] dtestlib.Test :: stderr: javax.jms.InvalidDestinationException: Destination doesn't exist: address_#_name::queue_#_name at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.createConsumer(AMQSession.java:166)
4) "blank" character (ascii_symbol_code 32) as prefix and suffix is treated as whitespace and removed from destination name.
If blank character is used as "infix" it works ok, but most probably because it is treated as whitespace (space) character.
java -jar /var/dtests/node_data/clients/aoc7.jar sender --timeout 5 --log-msgs dict --broker tcp://localhost:61616 --conn-username admin --conn-password admin --address queue_name_\ --count 1 [2017-10-30 11:40:27,127] [INFO] dtestlib.Test :: stdout: 11:43:41,358 ERROR Error while sending a message! [2017-10-30 11:40:27,127] [INFO] dtestlib.Test :: stderr: javax.jms.InvalidDestinationException: AMQ119017: Queue queue_name_ does not exist JAMQConfigurationAutoGen777Tests/test_queue_prefix_blank (69): FAIL JAMQConfigurationAutoGen777Tests/test_queue_suffix_blank (102): FAIL
All of these issues are not present in AMQP or Core protocols. All have been tested with appropriate JMS clients.
- incorporates
-
ENTMQ-1997 activemq-client strips whitespace from queue name, breaking interoperablity with qpid-jms client
- Closed
- is related to
-
AMQDOC-2609 Customer feedback: Document what characters are safe to be used as separator in AMQ 7 across protocols and APIs
- Closed
- relates to
-
ENTMQBR-701 Clarify reserved characters in AMQ 7
- Closed