From edefbbcad3f0346b6717a3558c59d5ba4585b0ec Mon Sep 17 00:00:00 2001 From: overmeulen Date: Mon, 19 Feb 2018 17:47:52 +0100 Subject: [PATCH] QPID-7972: [Broker-J] Put VirtualHostNode in ERRORed state if the underlying VirtualHost is --- .../AbstractStandardVirtualHostNode.java | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java b/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java index d7de6fddeb..7115a1b19a 100644 --- a/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java +++ b/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java @@ -31,6 +31,7 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; +import org.apache.qpid.server.model.State; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -102,19 +103,15 @@ protected ListenableFuture activate() if (host != null) { final QueueManagingVirtualHost recoveredHost = host; - final ListenableFuture openFuture; recoveredHost.setFirstOpening(isNew && initialRecords.length == 0); - openFuture = Subject.doAs(getSubjectWithAddedSystemRights(), - new PrivilegedAction>() - { - @Override - public ListenableFuture run() - { - return recoveredHost.openAsync(); - - } - }); - return openFuture; + + final ListenableFuture openFuture = Subject.doAs(getSubjectWithAddedSystemRights(), (PrivilegedAction>) recoveredHost::openAsync); + return doAfter(openFuture, () -> { + if (getVirtualHost().getState() == State.ERRORED ) + { + throw new IllegalStateException(String.format("This virtual host node has %s children", State.ERRORED)); + } + }); } else {