You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Logan Barnett (JIRA)" <ji...@apache.org> on 2014/01/23 20:18:38 UTC

[jira] [Created] (QPID-5510) Creating a subscription when the topic address has '{create: never}' creates the subscription anyways.

Logan Barnett created QPID-5510:
-----------------------------------

             Summary: Creating a subscription when the topic address has '{create: never}' creates the subscription anyways.
                 Key: QPID-5510
                 URL: https://issues.apache.org/jira/browse/QPID-5510
             Project: Qpid
          Issue Type: Bug
          Components: Java Client
    Affects Versions: 0.27
         Environment: Client: OSX 10.9.1, Java 1.7.0_15 - using qpid-client 0.24 from Maven
Server: Ubuntu 12.04.3, OpenJDK 2.3.10 - using trunk Java broker
            Reporter: Logan Barnett


I've been subscribing to a non-existing topic using { create: never}, and the topic subscription succeeds. Here's the address string in the properties file I'm using:
{noformat}
destination.dontCreateTopicExchange = amq.topic / test-create-failure; { create: never }
{noformat}

Here's the junit test:
{code:java}
    @Test
    public void testSubscriptionCannotBeCreatedWithCreateNever() throws Exception {
        Context context = null;
        Session session = null;
        Connection connection = null;
        MessageConsumer messageConsumer = null;
        
        try {
            Properties properties = new Properties();
            properties.load(this.getClass().getResourceAsStream("/hello.properties"));
            context = new InitialContext(properties);

            ConnectionFactory connectionFactory = (ConnectionFactory)context.lookup("qpidConnectionfactory");
            connection = connectionFactory.createConnection();
            connection.start();

            session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            Destination destination = (Destination)context.lookup("dontCreateTopicExchange");

            Topic topic = (Topic)destination;
            System.out.println("Subscribing to topic (" + topic.toString() + ") " + topic.getTopicName());

            try {
                messageConsumer = session.createConsumer((Topic)destination);
                // should not have gotten this far
                Assert.fail("Expected Session.createConsumer() to fail, but it succeeded.");
            }
            catch(JMSException e) { }

        }
        finally {
            if(messageConsumer != null) messageConsumer.close();
            if(session != null) session.close();
            if(connection != null) connection.close();
            if(context != null) context.close();
        }
    }
{code}

>From what I gather from the address string docs, session.createConsumer() should throw a JMSException, right?

Thanks!



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org