[ 
https://issues.apache.org/jira/browse/QPID-7692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15901448#comment-15901448
 ] 

Keith Wall commented on QPID-7692:
----------------------------------

The client Destination classes have ben relaxed to allow a {{routingKey}} to be 
null.  Most of the code already seemed to be null safe as null routing keys 
were already tolerated on some paths.  This change allows them on other paths 
too.  A system test is added to the Broker that demonstrates the issue.  The 
test is excluded on the failing path.  This exclusion can be removed once 6.1.2 
is released and the Broker's  parent POM updated to use it.



> [0-8..0-91]  Message sent to fanout exchange with no routing key is not 
> delivered to application
> ------------------------------------------------------------------------------------------------
>
>                 Key: QPID-7692
>                 URL: https://issues.apache.org/jira/browse/QPID-7692
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>            Reporter: Keith Wall
>             Fix For: qpid-java-7.0, qpid-java-6.1.2
>
>
> 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:
> {noformat}
> destination.pub = ADDR: myfanout; {create :always, node: {type: topic, 
> x-declare: { type: fanout}}}
> {noformat}
> The problem does not occur if a subject is used e.g. myfanout/myfanout; ... 
> or if the address does not include the _options_ part.
> {noformat}
> 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]
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to