summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2015-04-04 21:15:54 +0000
committerKeith Wall <kwall@apache.org>2015-04-04 21:15:54 +0000
commit822748c9a4a12345772beabe1bc15179288cef51 (patch)
tree78466d180718754eca21fd70ca7a5b2d8063d4db /qpid/java
parentd8e4b05346b5f4f9dd9eed3b7f6832c9796ca9de (diff)
downloadqpid-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.java11
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()