summaryrefslogtreecommitdiff
path: root/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java
diff options
context:
space:
mode:
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.java11
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)