summaryrefslogtreecommitdiff
path: root/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java')
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
index af1de8b099..c1c824a0c6 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
@@ -763,12 +763,22 @@ public abstract class AbstractExchange<T extends AbstractExchange<T>>
_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()
{
try
{
_virtualHost.removeExchange(this,true);
+ preSetAlternateExchange();
_state = State.DELETED;
}
catch (ExchangeIsAlternateException | RequiredExchangeException e)