On 11/14/2011 08:25 PM, Oleksandr Rudyy wrote:
Hi,I would like to bring to your attention that java test org.apache.qpid.test.client.destination.AddressBasedDestinationTest.testDeleteOptions started to fail constantly against cpp broker. The test is written to test a queue deletion if a "delete" option is specified in address URL. It tests a queue deletion for all 3 possible values of the delete option: always, receiver and sender. For all these cases test creates a producer and a consumer on test queues and uses "queue.query" command to check the queue existing after closing the consumer/producer. On closing the consumer/producer the queue is deleted and ExecutionResullt with QueueQueryResult object is expected to be received by the test in response for "queue.query" command. For delete options 'always' and 'receiver' the received response is as expected but for delete option 'sender' the ExecutionException(errorCode=RESOURCE_DELETED, description=Queue testQueue3 has been deleted. (qpid/broker/Queue.cpp:1415), errorInfo={}) is sent by the cpp broker on receiving "queue.query" command for a deleted queue. The last case passed before with some sporadic failures from time to time but now it fails all the time. Here is the snippet of java code which fails Session jmsSession = _connection.createSession(false,Session.AUTO_ACKNOWLEDGE); MessageConsumer cons; .... String addr3 = "ADDR:testQueue3;{create: always, delete: sender}"; AMQDestination dest = new AMQAnyDestination(addr3); try { cons = jmsSession.createConsumer(dest); MessageProducer prod = jmsSession.createProducer(dest); prod.close(); } catch(JMSException e) { fail("Exception should not be thrown. Exception thrown is : " + e); } assertFalse("Queue not deleted as expected",( (AMQSession_0_10)jmsSession).isQueueExist(dest,(QueueNode)dest.getSourceNode(), true));
The exception is not being issued by the broker in response to the query. It is being issued to the existing open subscriber when the queue is deleted from underneath it.
--------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:[email protected]
