diff options
Diffstat (limited to 'qpid/java/systests/src')
| -rw-r--r-- | qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java index 6d1b6de238..7f166d07fe 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java @@ -27,6 +27,7 @@ import java.util.HashMap; import java.util.Map; import javax.jms.Connection; +import javax.jms.JMSException; import javax.jms.MessageConsumer; import javax.jms.MessageProducer; import javax.jms.Queue; @@ -98,6 +99,31 @@ public class ConnectionCloseTest extends QpidBrokerTestCase delta.size() < deltaThreshold); } + /** + * This test is added due to QPID-3453 to test connection closing when AMQ + * session is not closed but underlying transport session is in detached + * state and transport connection is closed + */ + public void testConnectionCloseOnOnForcibleBrokerStop() throws Exception + { + Connection connection = getConnection(); + connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + stopBroker(); + + // we need to close connection explicitly in order to verify that + // closing of connection having transport session in DETACHED state and + // transport connection in CLOSED state does not throw an exception + try + { + connection.close(); + } + catch (JMSException e) + { + // session closing should not fail + fail("Cannot close connection:" + e.getMessage()); + } + } + private void dumpStacks(Map<Thread,StackTraceElement[]> map) { for (Map.Entry<Thread,StackTraceElement[]> entry : map.entrySet()) |
