[ https://issues.apache.org/jira/browse/QPID-880?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marnie McCormack updated QPID-880: ---------------------------------- Fix Version/s: (was: M4) Descoping items not being worked on for M4 into Unknown Fix Version for now > Client is still using broker set temporary queue names > ------------------------------------------------------- > > Key: QPID-880 > URL: https://issues.apache.org/jira/browse/QPID-880 > Project: Qpid > Issue Type: Bug > Components: Java Client > Affects Versions: M2, M2.1 > Reporter: Martin Ritchie > Assignee: Martin Ritchie > Attachments: QPID-880-ClientTempQueue.patch > > > Java Client still requests that the broker create temporary queue names so if > a client sends a message to a new temporary topic such as linke this: > AMQConnection connection = new AMQConnection("localhost", "guest", > "guest", "client", "test"); > QueueSession session = connection.createQueueSession(false, > Session.AUTO_ACKNOWLEDGE); > Queue queue = session.createTemporaryQueue(); > QueueSender sender = session.createSender(queue); > sender.send(session.createTextMessage()); > Then the returned message will fail to be returned as the client cannot > create the message: > pool-1-thread-1 2008-03-27 09:53:53,744 ERROR [apache.qpid.client.AMQSession] > Caught exception trying to raise undelivered message exception (dump follows) > - ignoring... > java.lang.IllegalArgumentException: Destination exchange must not be null > at org.apache.qpid.client.AMQDestination.<init>(AMQDestination.java:105) > at org.apache.qpid.client.AMQQueue.<init>(AMQQueue.java:64) > at > org.apache.qpid.client.message.AbstractJMSMessage.<init>(AbstractJMSMessage.java:89) > at > org.apache.qpid.client.message.JMSTextMessage.<init>(JMSTextMessage.java:65) > at > org.apache.qpid.client.message.JMSTextMessageFactory.createMessage(JMSTextMessageFactory.java:43) > at > org.apache.qpid.client.message.AbstractJMSMessageFactory.createMessageWithBody(AbstractJMSMessageFactory.java:91) > at > org.apache.qpid.client.message.AbstractJMSMessageFactory.createMessage(AbstractJMSMessageFactory.java:97) > at > org.apache.qpid.client.message.MessageFactoryRegistry.createMessage(MessageFactoryRegistry.java:106) > at org.apache.qpid.client.AMQSession$12.run(AMQSession.java:2689) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > The problem is here: > public AMQQueue(AMQShortString exchangeName, AMQShortString name, boolean > temporary) > { > // queue name is set to null indicating that the broker assigns a > name in the case of temporary queues > // temporary queues are typically used as response queues > this(exchangeName, name, temporary?null:name, temporary, temporary, > !temporary); > > } > Whilst AMQTemporaryQueue passes in a UUID for name AMQQueue throws that away > if it is a temporary request. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.