diff options
Diffstat (limited to 'qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java')
-rw-r--r-- | qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java index 6dd6c58853..bc5d30a0f0 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java @@ -29,9 +29,13 @@ import java.security.PrivilegedExceptionAction; import java.util.HashSet; import java.util.Properties; import java.util.Set; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; import javax.security.auth.Subject; +import com.google.common.util.concurrent.ListenableFuture; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; @@ -106,11 +110,16 @@ public class Broker implements BrokerShutdownProvider { if(_systemConfig != null) { - _systemConfig.close(); + ListenableFuture<Void> closeResult = _systemConfig.closeAsync(); + closeResult.get(30000l, TimeUnit.MILLISECONDS); } _taskExecutor.stop(); } + catch (TimeoutException | InterruptedException | ExecutionException e) + { + LOGGER.warn("Attempting to cleanly shutdown took too long, exiting immediately"); + } finally { if (_configuringOwnLogging) |