Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-7692

[Java Broker, 0-8..0-91] Message sent to fanout exchange with no routing key is not delivered to application

    XMLWordPrintableJSON

Details

    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]
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            kwall Keith Wall
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: