[ 
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.

Reply via email to