Hide Forgot
Description of problem: # java -cp $CLASSPATH org.apache.qpid.example.Spout "amq.direct; { assert: always, node: { type: topic }}" {} Exception in thread "main" javax.jms.JMSException: Error creating producer at org.apache.qpid.client.AMQSession_0_10.createMessageProducer(AMQSession_0_10.java:681) at org.apache.qpid.client.AMQSession_0_10.createMessageProducer(AMQSession_0_10.java:82) at org.apache.qpid.client.AMQSession$6.execute(AMQSession.java:2599) at org.apache.qpid.client.AMQSession$6.execute(AMQSession.java:2594) at org.apache.qpid.client.AMQConnectionDelegate_0_10.executeRetrySupport(AMQConnectionDelegate_0_10.java:314) at org.apache.qpid.client.AMQConnection.executeRetrySupport(AMQConnection.java:622) at org.apache.qpid.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:102) at org.apache.qpid.client.AMQSession.createProducerImpl(AMQSession.java:2592) at org.apache.qpid.client.AMQSession.createProducerImpl(AMQSession.java:2586) at org.apache.qpid.client.AMQSession.createProducer(AMQSession.java:1199) at org.apache.qpid.client.AMQSession.createProducer(AMQSession.java:120) at org.apache.qpid.example.Spout.<init>(Spout.java:91) at org.apache.qpid.example.Spout.main(Spout.java:146) Caused by: org.apache.qpid.AMQException: Exception occured while verifying destination at org.apache.qpid.client.BasicMessageProducer_0_10.declareDestination(BasicMessageProducer_0_10.java:90) at org.apache.qpid.client.BasicMessageProducer.<init>(BasicMessageProducer.java:141) at org.apache.qpid.client.BasicMessageProducer_0_10.<init>(BasicMessageProducer_0_10.java:65) at org.apache.qpid.client.AMQSession_0_10.createMessageProducer(AMQSession_0_10.java:676) ... 12 more Caused by: org.apache.qpid.AMQException: The name 'amq.direct' supplied in the address doesn't resolve to an exchange or a queue at org.apache.qpid.client.AMQSession_0_10.handleAddressBasedDestination(AMQSession_0_10.java:1237) at org.apache.qpid.client.BasicMessageProducer_0_10.declareDestination(BasicMessageProducer_0_10.java:86) ... 15 more Note: Python, C++ clients do not suffer from that Version-Release number of selected component (if applicable): qpid-java-0.10-6 How reproducible: 100% Steps to Reproduce: 1. java -cp $CLASSPATH org.apache.qpid.example.Spout "amq.direct; { assert: always, node: { type: topic }}" 2. got exception: The name 'amq.direct' supplied in the address doesn't resolve to an exchange or a queue Actual results: The target is not resolved when assert is used. Expected results: The target is successfully resolved when assert is used. Additional info:
Hi Rajith, we have found another wrong behavior in asserts and update to original bugzilla. Update: 1) ./run_example.sh org.apache.qpid.example.Spout "amq.direct; { assert: always, node: { type: topic }}" {} Exception in thread "main" javax.jms.JMSException: Error creating producer at org.apache.qpid.client.AMQSession.toJMSException(AMQSession.java:3468) at org.apache.qpid.client.AMQSession_0_10.createMessageProducer(AMQSession_0_10.java:694) at org.apache.qpid.client.AMQSession_0_10.createMessageProducer(AMQSession_0_10.java:88) at org.apache.qpid.client.AMQSession$7.execute(AMQSession.java:2593) at org.apache.qpid.client.AMQSession$7.execute(AMQSession.java:2584) at org.apache.qpid.client.AMQConnectionDelegate_0_10.executeRetrySupport(AMQConnectionDelegate_0_10.java:371) at org.apache.qpid.client.AMQConnection.executeRetrySupport(AMQConnection.java:624) at org.apache.qpid.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:102) at org.apache.qpid.client.AMQSession.createProducerImpl(AMQSession.java:2582) at org.apache.qpid.client.AMQSession.createProducer(AMQSession.java:1164) at org.apache.qpid.client.AMQSession.createProducer(AMQSession.java:98) at org.apache.qpid.example.Spout.<init>(Spout.java:91) at org.apache.qpid.example.Spout.main(Spout.java:147) Caused by: org.apache.qpid.AMQException: Exception occured while verifying destination at org.apache.qpid.client.BasicMessageProducer_0_10.declareDestination(BasicMessageProducer_0_10.java:95) at org.apache.qpid.client.BasicMessageProducer.<init>(BasicMessageProducer.java:136) at org.apache.qpid.client.BasicMessageProducer_0_10.<init>(BasicMessageProducer_0_10.java:64) at org.apache.qpid.client.AMQSession_0_10.createMessageProducer(AMQSession_0_10.java:689) ... 11 more Caused by: org.apache.qpid.AMQException: Assert failed for address : 'amq.direct'/None; { 'assert': 'always', 'node': { 'type': 'topic' } }, Result was : ExchangeQueryResult(type=direct, durable=true, arguments={qpid.replicate=none}) at org.apache.qpid.client.AMQSession_0_10.isExchangeExist(AMQSession_0_10.java:1122) at org.apache.qpid.client.AMQSession_0_10.resolveAddress(AMQSession_0_10.java:1252) at org.apache.qpid.client.BasicMessageProducer_0_10.declareDestination(BasicMessageProducer_0_10.java:89) ... 14 more When we assert a queue with provided queue arguments, java client ends with error code. Steps to reproduce 1) qpid-config add queue my_q --argument qpid.auto_delete_timeout=30 2) java -cp $CLASSPATH -Dlog4j.configuration=log4j.properties org.apache.qpid.example.qc2_connector --broker localhost:5672 --connection-options "{ sasl_mechanisms : 'ANONYMOUS', protocol : 'amqp0-10' }" -a "my_q;{'assert': 'always'}" --obj-ctrl CER javax.jms.JMSException: Error registering consumer: org.apache.qpid.AMQException: Assert failed for address : 'my_q'/None; { 'assert': 'always' }, Result was : QueueQueryResult(queue=my_q, alternateExchange=, autoDelete=true, arguments={qpid.auto_delete_timeout=30}, messageCount=0, subscriberCount=0) at org.apache.qpid.client.AMQSession.toJMSException(AMQSession.java:3468) at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:2021) at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:1973) at org.apache.qpid.client.AMQConnectionDelegate_0_10.executeRetrySupport(AMQConnectionDelegate_0_10.java:371) at org.apache.qpid.client.AMQConnection.executeRetrySupport(AMQConnection.java:624) at org.apache.qpid.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:102) at org.apache.qpid.client.AMQSession.createConsumerImpl(AMQSession.java:1971) at org.apache.qpid.client.AMQSession.createConsumer(AMQSession.java:939) at org.apache.qpid.example.qc2_connector.<init>(qc2_connector.java:223) at org.apache.qpid.example.qc2_connector.main(qc2_connector.java:283) Caused by: org.apache.qpid.AMQException: Assert failed for address : 'my_q'/None; { 'assert': 'always' }, Result was : QueueQueryResult(queue=my_q, alternateExchange=, autoDelete=true, arguments={qpid.auto_delete_timeout=30}, messageCount=0, subscriberCount=0) at org.apache.qpid.client.AMQSession_0_10.isQueueExist(AMQSession_0_10.java:1150) at org.apache.qpid.client.AMQSession_0_10.resolveAddress(AMQSession_0_10.java:1236) at org.apache.qpid.client.AMQSession.registerConsumer(AMQSession.java:2842) at org.apache.qpid.client.AMQSession.access$400(AMQSession.java:98) at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:1998) ... 8 more javax.jms.JMSException: Error registering consumer: org.apache.qpid.AMQException: Assert failed for address : 'my_q'/None; { 'assert': 'always' }, Result was : QueueQueryResult(queue=my_q, alternateExchange=, autoDelete=true, arguments={qpid.auto_delete_timeout=30}, messageCount=0, subscriberCount=0) or 2) using example clients ./run_example.sh org.apache.qpid.example.Spout "my_q; { assert: always}" {} Exception in thread "main" javax.jms.JMSException: Error creating producer at org.apache.qpid.client.AMQSession.toJMSException(AMQSession.java:3468) at org.apache.qpid.client.AMQSession_0_10.createMessageProducer(AMQSession_0_10.java:694) at org.apache.qpid.client.AMQSession_0_10.createMessageProducer(AMQSession_0_10.java:88) at org.apache.qpid.client.AMQSession$7.execute(AMQSession.java:2593) at org.apache.qpid.client.AMQSession$7.execute(AMQSession.java:2584) at org.apache.qpid.client.AMQConnectionDelegate_0_10.executeRetrySupport(AMQConnectionDelegate_0_10.java:371) at org.apache.qpid.client.AMQConnection.executeRetrySupport(AMQConnection.java:624) at org.apache.qpid.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:102) at org.apache.qpid.client.AMQSession.createProducerImpl(AMQSession.java:2582) at org.apache.qpid.client.AMQSession.createProducer(AMQSession.java:1164) at org.apache.qpid.client.AMQSession.createProducer(AMQSession.java:98) at org.apache.qpid.example.Spout.<init>(Spout.java:91) at org.apache.qpid.example.Spout.main(Spout.java:147) Caused by: org.apache.qpid.AMQException: Exception occured while verifying destination at org.apache.qpid.client.BasicMessageProducer_0_10.declareDestination(BasicMessageProducer_0_10.java:95) at org.apache.qpid.client.BasicMessageProducer.<init>(BasicMessageProducer.java:136) at org.apache.qpid.client.BasicMessageProducer_0_10.<init>(BasicMessageProducer_0_10.java:64) at org.apache.qpid.client.AMQSession_0_10.createMessageProducer(AMQSession_0_10.java:689) ... 11 more Caused by: org.apache.qpid.AMQException: Assert failed for address : 'my_q'/None; { 'assert': 'always' }, Result was : QueueQueryResult() at org.apache.qpid.client.AMQSession_0_10.isQueueExist(AMQSession_0_10.java:1150) at org.apache.qpid.client.AMQSession_0_10.resolveAddress(AMQSession_0_10.java:1236) at org.apache.qpid.client.BasicMessageProducer_0_10.declareDestination(BasicMessageProducer_0_10.java:89) ... 14 more Actual result: Error is thrown Expected result Assert passes. Tested with qpid-java-example-0.22-8.el6.noarch qpid-java-client-0.22-8.el6.noarch qpid-java-common-0.22-8.el6.noarch