Pavel Moravec created QPID-5931:
-----------------------------------

             Summary: [Java client]  JMSException instead of 
InvalidDestinationException raised when sending to temporary destination after 
session closure
                 Key: QPID-5931
                 URL: https://issues.apache.org/jira/browse/QPID-5931
             Project: Qpid
          Issue Type: Bug
          Components: Java Client
    Affects Versions: 0.28
            Reporter: Pavel Moravec
            Assignee: Pavel Moravec
            Priority: Trivial


An attempt to send to an auxiliary queue after the relevant session is closed 
should raise InvalidDestinationException. But  javax.jms.JMSException is raised 
instead.

junit test for this follows:

~~~
package org.apache.qpid.example;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;

import org.apache.qpid.client.AMQConnection;
import org.apache.qpid.client.AMQAnyDestination;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.InvalidDestinationException;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TemporaryQueue;
import javax.jms.TextMessage;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class InvalidDestinationTest 
{
        private Destination destination;
        private ConnectionFactory conFac;
        private Connection publisherConnection;
        private Session publisherSession;
        private Connection consumerConnection;
        private Session consumerSession;
        private MessageProducer publisherMsgProducer;
        private MessageConsumer consumerMsgConsumer;
        private MessageProducer consumerMsgProducer;
        private TemporaryQueue replyToQueue;

        public void setupQpid() throws Exception
        {
                destination = new AMQAnyDestination("demoQueue; {create: 
always}");
                
                String brokerlist = 
"amqp://guest:guest@guest/test?brokerlist='tcp://localhost:5672'";
                publisherConnection = new AMQConnection(brokerlist);
                publisherSession = publisherConnection.createSession(false, 
Session.CLIENT_ACKNOWLEDGE);
                
                consumerConnection = new AMQConnection(brokerlist);;
                consumerSession = consumerConnection.createSession(false, 
Session.CLIENT_ACKNOWLEDGE);          
        }       

        @Before
        public void before() throws Exception
        {
                setupQpid();
        }
        
        @After
        public void after() throws Exception
        {
                consumerSession.close();
                consumerConnection.close();

                publisherSession.close();
                publisherConnection.close();
        }
        
        @Test
        public void sendToTempQueueWhenItDoesNotExist() throws Exception
        {
                consumerMsgConsumer = 
consumerSession.createConsumer(destination);
                consumerConnection.start();
                publisherMsgProducer = 
publisherSession.createProducer(destination);
                replyToQueue = publisherSession.createTemporaryQueue();         
                publisherConnection.close();
                                
                TextMessage response = consumerSession.createTextMessage("");
                consumerMsgProducer = 
consumerSession.createProducer(replyToQueue);
                try
                {
                        consumerMsgProducer.send(response);
                }
                catch (InvalidDestinationException e)
                {       
                        //expect to get this exception                  
                }
                catch (JMSException e)
                {
                        e.printStackTrace();
                        fail("Unexpected exception type");
                }
        }       
}
~~~



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to