Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Won't Fix
-
0.12
-
None
-
Windows XP, Java 1.6
Description
Hi,
The following address ...
response/response_routing_key; { create: receiver, link: { name: 'response_queue', durable: false, x-declare: { auto-delete: false, exclusive: false, arguments :
{ 'qpid.max_count': 1000, 'qpid.max_size': 1000000, 'qpid.policy_type': ring }} } }
... should:
1) Create a non-durable queue named "response_queue", with qpid.max_count=1000, qpid.max_size=1000000, qpid.policy_type=ring. The queue should not be exclusive and should not be auto-delete
2) Bind the newly created queue to the exchange named "response" using the key "response_routing_key"
It almost works, except the auto-delete and exclusive options being ignored. I was trying to find out why are they getting lost and it seems the values are properly loaded by the AddressHelper class, but later they are overwritten in AMQSession_0_10.java on line 1342 and 1342:
1342 node.setExclusive(true);
1343 node.setAutoDelete(!node.isDurable());
(http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java?view=markup)
In Python and C++ it seems to work fine. Therefore it would be reasonable to fix it in Java as well. This issue was also discussed on the mailing list: http://apache-qpid-users.2158936.n2.nabble.com/Defining-non-exclusive-auto-delete-queues-in-JMS-API-td6800890.html
Thanks & Regards
Jakub