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

[JMS Client 0.8/0.9.x] JMS client can send null as an exchange name in ExchangeBound command

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Invalid
    • Affects Version/s: 0.30
    • Fix Version/s: None
    • Component/s: JMS AMQP 0-x
    • Labels:
      None

      Description

      JMS client can send null as an exchange name in ExchangeBound command
      Client log:

      main 2014-08-29 11:42:44,985 DEBUG [qpid.protocol] SEND: [org.apache.qpid.client.protocol.AMQProtocolHandler@62725296] Frame channelId: 2, bodyFrame: [ExchangeBoundBodyImpl: exchange=amq.direct, routingKey=selectors, queue=selectors]
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:44,985 INFO [qpid.protocol] RECV: [org.apache.qpid.client.protocol.AMQProtocolHandler@62725296] Frame channelId: 2, bodyFrame: [ExchangeBoundOkBodyImpl: replyCode=0, replyText=null]
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:44,985 DEBUG [qpid.client.protocol.AMQProtocolHandler] (1651659414)Method frame received: [ExchangeBoundOkBodyImpl: replyCode=0, replyText=null]
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:44,985 DEBUG [qpid.client.handler.ExchangeBoundOkMethodHandler] Received Exchange.Bound-Ok message, response code: 0 text: null
      main 2014-08-29 11:42:44,985 DEBUG [apache.qpid.client.AMQSession] Setting channel flow : suspended
      main 2014-08-29 11:42:44,985 DEBUG [qpid.protocol] SEND: [org.apache.qpid.client.protocol.AMQProtocolHandler@62725296] Frame channelId: 2, bodyFrame: [ChannelFlowBodyImpl: active=false]
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:44,986 INFO [qpid.protocol] RECV: [org.apache.qpid.client.protocol.AMQProtocolHandler@62725296] Frame channelId: 2, bodyFrame: [ChannelFlowOkBodyImpl: active=false]
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:44,986 DEBUG [qpid.client.protocol.AMQProtocolHandler] (1651659414)Method frame received: [ChannelFlowOkBodyImpl: active=false]
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:44,986 DEBUG [qpid.client.handler.ChannelFlowOkMethodHandler] Received Channel.Flow-Ok message, active = false
      main 2014-08-29 11:42:44,986 DEBUG [apache.qpid.client.AMQSession] Prefetching delayed existing messages will not flow until requested via receive*() or setML().
      main 2014-08-29 11:42:44,987 DEBUG [apache.qpid.framing.FieldTable] FieldTable::writeToBuffer: Writing encoded length of 27...
      main 2014-08-29 11:42:44,987 DEBUG [apache.qpid.framing.FieldTable] {x-filter-jms-selector=[LONG_STRING: ]}
      main 2014-08-29 11:42:44,987 DEBUG [qpid.protocol] SEND: [org.apache.qpid.client.protocol.AMQProtocolHandler@62725296] Frame channelId: 2, bodyFrame: [BasicConsumeBodyImpl: ticket=0, queue=selectors, consumerTag=1, noLocal=false, noAck=true, exclusive=false, nowait=false, arguments={x-filter-jms-selector=[LONG_STRING: ]}]
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:44,994 INFO [qpid.protocol] RECV: [org.apache.qpid.client.protocol.AMQProtocolHandler@62725296] Frame channelId: 2, bodyFrame: [BasicConsumeOkBodyImpl: consumerTag=1]
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:44,994 DEBUG [qpid.client.protocol.AMQProtocolHandler] (1651659414)Method frame received: [BasicConsumeOkBodyImpl: consumerTag=1]
      main 2014-08-29 11:42:44,995 DEBUG [apache.qpid.client.AMQConnectionDelegate_8_0] supportsIsBound: true
      main 2014-08-29 11:42:44,996 DEBUG [qpid.protocol] SEND: [org.apache.qpid.client.protocol.AMQProtocolHandler@62725296] Frame channelId: 2, bodyFrame: [ExchangeBoundBodyImpl: exchange=null, routingKey=null, queue=selectors]
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:45,004 DEBUG [qpid.client.protocol.AMQProtocolHandler] Session closed called with failover state FailoverState: NOT STARTED
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:45,005 DEBUG [apache.qpid.jms.FailoverPolicy] All failover methods exhausted
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:45,005 DEBUG [apache.qpid.jms.FailoverPolicy] All failover methods exhausted
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:45,005 DEBUG [qpid.client.protocol.AMQProtocolHandler] Failover not allowed by policy:Failover Policy:
      Failover not allowed
      Failover policy methods
      >Single Server:
      Max Retries:0
      Current Retry:0
      tcp://127.0.0.1:56724
      
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:45,006 DEBUG [apache.qpid.client.AMQConnection] exceptionReceived done by:IoReceiver - /127.0.0.1:56724
      org.apache.qpid.AMQDisconnectedException: Server closed connection and reconnection not permitted.
      	at org.apache.qpid.client.protocol.AMQProtocolHandler.closed(AMQProtocolHandler.java:275)
      	at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:222)
      	at java.lang.Thread.run(Thread.java:745)
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:45,009 DEBUG [qpid.client.state.AMQStateManager] State changing to AMQState: id = 6 name: CONNECTION_CLOSED from old state AMQState: id = 4 name: CONNECTION_OPEN
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:45,009 DEBUG [qpid.client.state.AMQStateManager] Notififying State change to 0 : []
      IoReceiver - /127.0.0.1:56724 2014-08-29 11:42:45,009 INFO [qpid.client.state.AMQStateManager] No Waiters for error. Saving as last error:Exception thrown against AMQConnection:
      Host: 127.0.0.1
      Port: 56724
      Virtual Host: 
      Client ID: clientid
      Active session count: 2: org.apache.qpid.AMQDisconnectedException: Server closed connection and reconnection not permitted.
      main 2014-08-29 11:42:45,009 DEBUG [apache.qpid.client.AMQSession] Closing session: org.apache.qpid.client.AMQSession_0_8@65babc5c
      main 2014-08-29 11:42:45,010 DEBUG [apache.qpid.client.BasicMessageConsumer] Closing consumer:1[1400948206]
      main 2014-08-29 11:42:45,011 ERROR [qpid.disttest.controller.TestRunner] Couldn't run test
      org.apache.qpid.disttest.DistributedTestException: Failed to drain queue:direct://amq.direct/selectors/selectors?routingkey='selectors'
      	at org.apache.qpid.disttest.jms.QpidQueueCreator.drainQueue(QpidQueueCreator.java:122)
      	at org.apache.qpid.disttest.jms.QpidQueueCreator.deleteQueues(QpidQueueCreator.java:64)
      	at org.apache.qpid.disttest.jms.ControllerJmsDelegate.deleteQueues(ControllerJmsDelegate.java:233)
      	at org.apache.qpid.disttest.controller.TestRunner.deleteQueues(TestRunner.java:237)
      	at org.apache.qpid.disttest.controller.TestRunner.runParts(TestRunner.java:145)
      	at org.apache.qpid.disttest.controller.TestRunner.run(TestRunner.java:104)
      	at org.apache.qpid.disttest.controller.Controller.runAllTests(Controller.java:171)
      	at org.apache.qpid.disttest.ControllerRunner.runTest(ControllerRunner.java:157)
      	at org.apache.qpid.disttest.ControllerRunner.runTests(ControllerRunner.java:136)
      	at org.apache.qpid.disttest.ControllerRunner.runController(ControllerRunner.java:90)
      	at org.apache.qpid.disttest.ControllerRunner.main(ControllerRunner.java:77)
      Caused by: org.apache.qpid.disttest.DistributedTestException: Failed to query queue depth:direct://amq.direct/selectors/selectors?routingkey='selectors'
      	at org.apache.qpid.disttest.jms.QpidQueueCreator.getQueueDepth(QpidQueueCreator.java:91)
      	at org.apache.qpid.disttest.jms.QpidQueueCreator.drainQueue(QpidQueueCreator.java:104)
      	... 10 more
      Caused by: org.apache.qpid.AMQException: Woken up due to class javax.jms.JMSException
      	at org.apache.qpid.client.util.BlockingWaiter.block(BlockingWaiter.java:195)
      	at org.apache.qpid.client.protocol.BlockingMethodFrameListener.blockForFrame(BlockingMethodFrameListener.java:115)
      	at org.apache.qpid.client.protocol.AMQProtocolHandler.writeCommandFrameAndWaitForReply(AMQProtocolHandler.java:709)
      	at org.apache.qpid.client.protocol.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:730)
      	at org.apache.qpid.client.protocol.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:724)
      	at org.apache.qpid.client.AMQSession_0_8.sendExchangeBound(AMQSession_0_8.java:506)
      	at org.apache.qpid.client.AMQSession_0_8.access$100(AMQSession_0_8.java:70)
      	at org.apache.qpid.client.AMQSession_0_8$2.execute(AMQSession_0_8.java:462)
      	at org.apache.qpid.client.AMQSession_0_8$2.execute(AMQSession_0_8.java:459)
      	at org.apache.qpid.client.failover.FailoverNoopSupport.execute(FailoverNoopSupport.java:67)
      	at org.apache.qpid.client.AMQSession_0_8.isBound(AMQSession_0_8.java:457)
      	at org.apache.qpid.client.AMQSession_0_8.requestQueueDepth(AMQSession_0_8.java:881)
      	at org.apache.qpid.client.AMQSession$8.execute(AMQSession.java:2851)
      	at org.apache.qpid.client.AMQSession$8.execute(AMQSession.java:2846)
      	at org.apache.qpid.client.failover.FailoverNoopSupport.execute(FailoverNoopSupport.java:67)
      	at org.apache.qpid.client.AMQSession.getQueueDepth(AMQSession.java:2845)
      	at org.apache.qpid.client.AMQSession.getQueueDepth(AMQSession.java:2830)
      	at org.apache.qpid.disttest.jms.QpidQueueCreator.getQueueDepth(QpidQueueCreator.java:86)
      	... 11 more
      Caused by: javax.jms.JMSException: Exception thrown against AMQConnection:
      Host: 127.0.0.1
      Port: 56724
      Virtual Host: 
      Client ID: clientid
      Active session count: 2: org.apache.qpid.AMQDisconnectedException: Server closed connection and reconnection not permitted.
      	at org.apache.qpid.client.AMQConnection.exceptionReceived(AMQConnection.java:1313)
      	at org.apache.qpid.client.protocol.AMQProtocolHandler.closed(AMQProtocolHandler.java:275)
      	at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:222)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: org.apache.qpid.AMQDisconnectedException: Server closed connection and reconnection not permitted.
      	... 3 more
      main 2014-08-29 11:42:45,014 ERROR [apache.qpid.disttest.ControllerRunner] Problem running test
      org.apache.qpid.disttest.DistributedTestException: Failed to drain queue:direct://amq.direct/selectors/selectors?routingkey='selectors'
      	at org.apache.qpid.disttest.jms.QpidQueueCreator.drainQueue(QpidQueueCreator.java:122)
      	at org.apache.qpid.disttest.jms.QpidQueueCreator.deleteQueues(QpidQueueCreator.java:64)
      	at org.apache.qpid.disttest.jms.ControllerJmsDelegate.deleteQueues(ControllerJmsDelegate.java:233)
      	at org.apache.qpid.disttest.controller.TestRunner.deleteQueues(TestRunner.java:237)
      	at org.apache.qpid.disttest.controller.TestRunner.runParts(TestRunner.java:145)
      	at org.apache.qpid.disttest.controller.TestRunner.run(TestRunner.java:104)
      	at org.apache.qpid.disttest.controller.Controller.runAllTests(Controller.java:171)
      	at org.apache.qpid.disttest.ControllerRunner.runTest(ControllerRunner.java:157)
      	at org.apache.qpid.disttest.ControllerRunner.runTests(ControllerRunner.java:136)
      	at org.apache.qpid.disttest.ControllerRunner.runController(ControllerRunner.java:90)
      	at org.apache.qpid.disttest.ControllerRunner.main(ControllerRunner.java:77)
      Caused by: org.apache.qpid.disttest.DistributedTestException: Failed to query queue depth:direct://amq.direct/selectors/selectors?routingkey='selectors'
      	at org.apache.qpid.disttest.jms.QpidQueueCreator.getQueueDepth(QpidQueueCreator.java:91)
      	at org.apache.qpid.disttest.jms.QpidQueueCreator.drainQueue(QpidQueueCreator.java:104)
      	... 10 more
      Caused by: org.apache.qpid.AMQException: Woken up due to class javax.jms.JMSException
      	at org.apache.qpid.client.util.BlockingWaiter.block(BlockingWaiter.java:195)
      	at org.apache.qpid.client.protocol.BlockingMethodFrameListener.blockForFrame(BlockingMethodFrameListener.java:115)
      	at org.apache.qpid.client.protocol.AMQProtocolHandler.writeCommandFrameAndWaitForReply(AMQProtocolHandler.java:709)
      	at org.apache.qpid.client.protocol.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:730)
      	at org.apache.qpid.client.protocol.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:724)
      	at org.apache.qpid.client.AMQSession_0_8.sendExchangeBound(AMQSession_0_8.java:506)
      	at org.apache.qpid.client.AMQSession_0_8.access$100(AMQSession_0_8.java:70)
      	at org.apache.qpid.client.AMQSession_0_8$2.execute(AMQSession_0_8.java:462)
      	at org.apache.qpid.client.AMQSession_0_8$2.execute(AMQSession_0_8.java:459)
      	at org.apache.qpid.client.failover.FailoverNoopSupport.execute(FailoverNoopSupport.java:67)
      	at org.apache.qpid.client.AMQSession_0_8.isBound(AMQSession_0_8.java:457)
      	at org.apache.qpid.client.AMQSession_0_8.requestQueueDepth(AMQSession_0_8.java:881)
      	at org.apache.qpid.client.AMQSession$8.execute(AMQSession.java:2851)
      	at org.apache.qpid.client.AMQSession$8.execute(AMQSession.java:2846)
      	at org.apache.qpid.client.failover.FailoverNoopSupport.execute(FailoverNoopSupport.java:67)
      	at org.apache.qpid.client.AMQSession.getQueueDepth(AMQSession.java:2845)
      	at org.apache.qpid.client.AMQSession.getQueueDepth(AMQSession.java:2830)
      	at org.apache.qpid.disttest.jms.QpidQueueCreator.getQueueDepth(QpidQueueCreator.java:86)
      	... 11 more
      Caused by: javax.jms.JMSException: Exception thrown against AMQConnection:
      Host: 127.0.0.1
      Port: 56724
      Virtual Host: 
      Client ID: clientid
      Active session count: 2: org.apache.qpid.AMQDisconnectedException: Server closed connection and reconnection not permitted.
      	at org.apache.qpid.client.AMQConnection.exceptionReceived(AMQConnection.java:1313)
      	at org.apache.qpid.client.protocol.AMQProtocolHandler.closed(AMQProtocolHandler.java:275)
      	at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:222)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: org.apache.qpid.AMQDisconnectedException: Server closed connection and reconnection not permitted.
      	... 3 more
      main 2014-08-29 11:42:45,016 INFO [qpid.disttest.controller.Controller] Stopping all clients
      

      Broker log:

      2014-08-29 11:42:44,997 ERROR [IoReceiver - /127.0.0.1:34522] (protocol.AMQProtocolEngine) - Unexpected exception while processing frame.  Closing connection.
      org.apache.qpid.AMQException: Exchange exchange must not be null
      	at org.apache.qpid.server.handler.ExchangeBoundHandler.methodReceived(ExchangeBoundHandler.java:89)
      	at org.apache.qpid.server.handler.ServerMethodDispatcherImpl.dispatchExchangeBound(ServerMethodDispatcherImpl.java:458)
      	at org.apache.qpid.framing.amqp_0_9.ExchangeBoundBodyImpl.execute(ExchangeBoundBodyImpl.java:130)
      	at org.apache.qpid.server.state.AMQStateManager.methodReceived(AMQStateManager.java:120)
      	at org.apache.qpid.server.protocol.AMQProtocolEngine.methodFrameReceived(AMQProtocolEngine.java:569)
      	at org.apache.qpid.framing.AMQMethodBodyImpl.handle(AMQMethodBodyImpl.java:97)
      	at org.apache.qpid.server.protocol.AMQProtocolEngine.frameReceived(AMQProtocolEngine.java:433)
      	at org.apache.qpid.server.protocol.AMQProtocolEngine.dataBlockReceived(AMQProtocolEngine.java:356)
      	at org.apache.qpid.server.protocol.AMQProtocolEngine.received(AMQProtocolEngine.java:277)
      	at org.apache.qpid.server.protocol.AMQProtocolEngine.received(AMQProtocolEngine.java:103)
      	at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:118)
      	at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:37)
      	at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:161)
      	at java.lang.Thread.run(Thread.java:745)
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                orudyy Alex Rudyy
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: