From 6e147e4d0e8bd2a2fe5ec54c74b2a27c7bd67daa Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Mon, 27 Feb 2012 23:43:02 +0000 Subject: QPID-2621 : [Java Client] Calling QueueBrowser.getEnumeration on a stopped connection will hang git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1294397 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/qpid/client/AMQQueueBrowser.java | 4 ++++ .../qpid/test/client/QueueBrowserAutoAckTest.java | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) (limited to 'java') diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java b/java/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java index bd83e8b37b..0c6031ea91 100644 --- a/java/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java +++ b/java/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java @@ -132,6 +132,10 @@ public class AMQQueueBrowser implements QueueBrowser public Enumeration getEnumeration() throws JMSException { checkState(); + if(!_session.getAMQConnection().started()) + { + throw new IllegalStateException("Cannot enumerate message on the queue while the Connection is stopped"); + } final BasicMessageConsumer consumer = (BasicMessageConsumer) _session.createBrowserConsumer(_queue, _messageSelector, false); diff --git a/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java b/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java index f3433adb3f..6b6b4a7b3c 100644 --- a/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java +++ b/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java @@ -420,4 +420,21 @@ public class QueueBrowserAutoAckTest extends QpidBrokerTestCase validate(messages); } + public void testBrowsingWhileStopped() throws JMSException + { + _clientConnection.stop(); + + try + { + QueueBrowser browser = _clientSession.createBrowser(getTestQueue()); + Enumeration messages = browser.getEnumeration(); + fail("Expected exception when attempting to browse on a stopped connection did not occur"); + } + catch(javax.jms.IllegalStateException e) + { + // pass + } + + } + } -- cgit v1.2.1