summaryrefslogtreecommitdiff
path: root/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java')
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
index c49c2790df..ca89db3849 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
@@ -1792,7 +1792,6 @@ public abstract class AbstractQueue<X extends AbstractQueue<X>>
preSetAlternateExchange();
-
for (Action<? super AMQQueue> task : _deleteTaskList)
{
task.performAction(this);
@@ -2818,10 +2817,18 @@ public abstract class AbstractQueue<X extends AbstractQueue<X>>
_state = State.ACTIVE;
}
+ @StateTransition(currentState = State.UNINITIALIZED, desiredState = State.DELETED)
+ private void doDeleteBeforeInitialize()
+ {
+ preSetAlternateExchange();
+ _state = State.DELETED;
+ }
+
@StateTransition(currentState = State.ACTIVE, desiredState = State.DELETED)
private void doDelete()
{
_virtualHost.removeQueue(this);
+ preSetAlternateExchange();
_state = State.DELETED;
}