From 4abd5879ee62961db700a4f125d0fcf6c355d3cd Mon Sep 17 00:00:00 2001 From: Rajith Muditha Attapattu Date: Thu, 3 Mar 2011 16:34:20 +0000 Subject: QPID-3109 The isQueueExist method is modified to handle the exception when a queue has been deleted. Both the Message producer and consumer now delete the queue if the delete option is selected and will not check if the queue is empty or if there are any subscribers on it. Also added test cases. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1076670 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/qpid/client/AMQSession_0_10.java | 38 ++++++++++---- .../apache/qpid/client/BasicMessageConsumer.java | 3 ++ .../qpid/client/BasicMessageConsumer_0_10.java | 16 ++++++ .../qpid/client/BasicMessageConsumer_0_8.java | 4 ++ .../qpid/client/BasicMessageProducer_0_10.java | 17 +++++++ .../destination/AddressBasedDestinationTest.java | 58 ++++++++++++++++++++++ 6 files changed, 125 insertions(+), 11 deletions(-) (limited to 'qpid/java') diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java index 517a7a5ce8..b392bad879 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java @@ -56,6 +56,7 @@ import org.apache.qpid.framing.FieldTable; import org.apache.qpid.protocol.AMQConstant; import org.apache.qpid.transport.ExchangeBoundResult; import org.apache.qpid.transport.ExchangeQueryResult; +import org.apache.qpid.transport.ExecutionErrorCode; import org.apache.qpid.transport.ExecutionException; import org.apache.qpid.transport.MessageAcceptMode; import org.apache.qpid.transport.MessageAcquireMode; @@ -1068,22 +1069,37 @@ public class AMQSession_0_10 extends AMQSession extends Closeable implements Messa if (!_session.isClosed() || _session.isClosing()) { sendCancel(); + cleanupQueue(); } } catch (AMQException e) @@ -608,6 +609,8 @@ public abstract class BasicMessageConsumer extends Closeable implements Messa } abstract void sendCancel() throws AMQException, FailoverException; + + abstract void cleanupQueue() throws AMQException, FailoverException; /** * Called when you need to invalidate a consumer. Used for example when failover has occurred and the client has diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java b/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java index b5f3501e5a..1c7c9a7bb5 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java @@ -19,7 +19,9 @@ package org.apache.qpid.client; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.qpid.client.AMQDestination.AddressOption; import org.apache.qpid.client.AMQDestination.DestSyntax; +import org.apache.qpid.client.failover.FailoverException; import org.apache.qpid.client.message.*; import org.apache.qpid.client.protocol.AMQProtocolHandler; import org.apache.qpid.framing.AMQShortString; @@ -509,4 +511,18 @@ public class BasicMessageConsumer_0_10 extends BasicMessageConsumer