You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Marnie McCormack (JIRA)" <qp...@incubator.apache.org> on 2008/10/30 12:15:45 UTC
[jira] Updated: (QPID-880) Client is still using broker set
temporary queue names
[ 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.