diff options
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.java | 10 |
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) |