Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
If I publish a message to the fanout exchange with no routing key, then receive the same message, the client logs an error and the application fails to receive the message both otherwise continues. The problem only occurs on the 0-8..0-91 code path and then only if the client is in BURL default address syntax.
Example publish address that causes the problem:
destination.pub = ADDR: myfanout; {create :always, node: {type: topic, x-declare: { type: fanout}}}
The problem does not occur if a subject is used e.g. myfanout/myfanout; ... or if the address does not include the options part.
12:37:40.195 [Dispatcher-2-Conn-2] ERROR o.a.qpid.client.BasicMessageConsumer - Caught exception (dump follows) - ignoring... java.lang.IllegalArgumentException: routing/binding key must not be null at org.apache.qpid.client.AMQDestination.<init>(AMQDestination.java:379) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.AMQDestination.<init>(AMQDestination.java:369) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.AMQDestination.<init>(AMQDestination.java:363) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.AMQTopic.<init>(AMQTopic.java:66) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.AMQSession_0_8$TopicDestinationCache.newDestination(AMQSession_0_8.java:1528) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.AMQSession_0_8$TopicDestinationCache.newDestination(AMQSession_0_8.java:1524) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.AMQSession_0_8$DestinationCache.getDestination(AMQSession_0_8.java:1515) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.message.AMQMessageDelegate_0_8.<init>(AMQMessageDelegate_0_8.java:127) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.message.AbstractJMSMessageFactory.create08MessageWithBody(AbstractJMSMessageFactory.java:122) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.message.AbstractJMSMessageFactory.createMessage(AbstractJMSMessageFactory.java:188) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.message.MessageFactoryRegistry.createMessage(MessageFactoryRegistry.java:126) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.BasicMessageConsumer_0_8.createJMSMessageFromUnprocessedMessage(BasicMessageConsumer_0_8.java:156) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.BasicMessageConsumer_0_8.createJMSMessageFromUnprocessedMessage(BasicMessageConsumer_0_8.java:47) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.BasicMessageConsumer.notifyMessage(BasicMessageConsumer.java:726) ~[qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.AMQSession$Dispatcher.notifyConsumer(AMQSession.java:3662) [qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.AMQSession$Dispatcher.dispatchMessage(AMQSession.java:3594) [qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.AMQSession$Dispatcher.access$1300(AMQSession.java:3362) [qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.AMQSession.dispatch(AMQSession.java:3355) [qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.message.UnprocessedMessage.dispatch(UnprocessedMessage.java:54) [qpid-client-6.1.1.jar:6.1.1] at org.apache.qpid.client.AMQSession$Dispatcher.run(AMQSession.java:3504) [qpid-client-6.1.1.jar:6.1.1] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]