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.