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

the C++ broker uses the wrong exception type when clients try to modify the default exchange

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.13
    • 0.13
    • C++ Broker
    • None

    Description

      Various test cases in AddressBasedDestinationTest are failing on the C++ test profiles, due to an exception being returned indicating the client tried to modify the default exchange. The exception is a NOT_ALLOWED, but the 0-10 spec says this should be met with an ILLEGAL_ARGUMENT exception.

      Eg:

      Testcase: testDestinationOnSend took 0.207 sec
      Caused an ERROR
      Error registering consumer: org.apache.qpid.AMQException: ch=0 id=0 ExecutionException(errorCode=NOT_ALLOWED, commandId=4, classCode=7, commandCode=4, fieldI
      ndex=0, description=not-allowed: Bind not allowed for default exchange (qpid/broker/Broker.cpp:920), errorInfo={}) [error code 530: not allowed]
      javax.jms.JMSException: Error registering consumer: org.apache.qpid.AMQException: ch=0 id=0 ExecutionException(errorCode=NOT_ALLOWED, commandId=4, classCode=
      7, commandCode=4, fieldIndex=0, description=not-allowed: Bind not allowed for default exchange (qpid/broker/Broker.cpp:920), errorInfo={}) [error code 530: n
      ot allowed]
      at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:2057)
      at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:2000)
      at org.apache.qpid.client.AMQConnectionDelegate_0_10.executeRetrySupport(AMQConnectionDelegate_0_10.java:325)
      at org.apache.qpid.client.AMQConnection.executeRetrySupport(AMQConnection.java:570)
      at org.apache.qpid.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:102)
      at org.apache.qpid.client.AMQSession.createConsumerImpl(AMQSession.java:1998)
      at org.apache.qpid.client.AMQSession.createConsumer(AMQSession.java:971)
      at org.apache.qpid.test.client.destination.AddressBasedDestinationTest.testDestinationOnSend(AddressBasedDestinationTest.java:1119)
      at org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:243)
      at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:128)
      Caused by: org.apache.qpid.AMQException: ch=0 id=0 ExecutionException(errorCode=NOT_ALLOWED, commandId=4, classCode=7, commandCode=4, fieldIndex=0, descripti
      on=not-allowed: Bind not allowed for default exchange (qpid/broker/Broker.cpp:920), errorInfo={}) [error code 530: not allowed]
      at org.apache.qpid.client.AMQSession_0_10.setCurrentException(AMQSession_0_10.java:1058)
      at org.apache.qpid.client.AMQSession_0_10.sync(AMQSession_0_10.java:1038)
      at org.apache.qpid.client.AMQSession_0_10.sendQueueBind(AMQSession_0_10.java:377)
      at org.apache.qpid.client.AMQSession$2.execute(AMQSession.java:678)
      at org.apache.qpid.client.failover.FailoverNoopSupport.execute(FailoverNoopSupport.java:67)
      at org.apache.qpid.client.AMQSession.bindQueue(AMQSession.java:674)
      at org.apache.qpid.client.AMQSession.registerConsumer(AMQSession.java:2854)
      at org.apache.qpid.client.AMQSession.access$500(AMQSession.java:120)
      at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:2034)

      Attachments

        Activity

          People

            gsim Gordon Sim
            robbie Robbie Gemmell
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: