diff options
| author | Keith Wall <kwall@apache.org> | 2015-04-04 21:15:54 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2015-04-04 21:15:54 +0000 |
| commit | 822748c9a4a12345772beabe1bc15179288cef51 (patch) | |
| tree | 78466d180718754eca21fd70ca7a5b2d8063d4db /qpid/java | |
| parent | d8e4b05346b5f4f9dd9eed3b7f6832c9796ca9de (diff) | |
| download | qpid-python-822748c9a4a12345772beabe1bc15179288cef51.tar.gz | |
QPID-6429: [Java Broker] Make NetworkConnectionScheduler utilise the Broker's uncaught exception handler so that exeptions are logged and can optionally stop the Broker
* Also bound the IO pool's upper size
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1671335 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
| -rw-r--r-- | qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java index 8e6e4b7914..03b7a2e420 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java @@ -21,8 +21,11 @@ package org.apache.qpid.server.transport; import java.util.concurrent.Executors; +import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadFactory; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import org.slf4j.Logger; @@ -33,7 +36,7 @@ class NetworkConnectionScheduler private static final Logger LOGGER = LoggerFactory.getLogger(NetworkConnectionScheduler.class); private final SelectorThread _selectorThread; - private final ScheduledThreadPoolExecutor _executor; + private final ThreadPoolExecutor _executor; private final AtomicInteger _running = new AtomicInteger(); private final int _poolSize; @@ -41,9 +44,11 @@ class NetworkConnectionScheduler { _selectorThread = selectorThread; _poolSize = Runtime.getRuntime().availableProcessors(); - _executor = new ScheduledThreadPoolExecutor(_poolSize, new ThreadFactory() + _executor = new ThreadPoolExecutor(_poolSize, _poolSize, 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue<Runnable>(), new ThreadFactory() { final AtomicInteger _count = new AtomicInteger(); + @Override public Thread newThread(final Runnable r) { @@ -57,7 +62,7 @@ class NetworkConnectionScheduler public void schedule(final NonBlockingConnection connection) { - _executor.submit(new Runnable() + _executor.execute(new Runnable() { @Override public void run() |
