-
Type:
Bug
-
Status: New
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: AMQ 7.0.3.GA, AMQ 7.1.0.GA
-
Fix Version/s: None
-
Component/s: openwire-protocol
-
Labels:None
-
Environment:
AMQ 7.1.0 and older (7.0.3 is affected as well)
Openwire protocol/ JMS client
-
Target Release:
-
Affects:Documentation (Ref Guide, User Guide, etc.), Release Notes, Compatibility/Configuration
-
Workaround:Workaround Exists
-
Workaround Description:
-
Release Notes Text:Currently AMQ OpenWire JMS clients cannot access queues and address that include the following characters in their name: comma (','), hash ('#'), greater than ('>'), and whitespace.
-
Release Notes Docs Status:Documented as Known Issue
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
-
- Open
-
- 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
-
- Done
-