diff options
author | Keith Wall <kwall@apache.org> | 2012-02-07 11:41:43 +0000 |
---|---|---|
committer | Keith Wall <kwall@apache.org> | 2012-02-07 11:41:43 +0000 |
commit | d953221fc4e8b220965fb020274e7cdc47513097 (patch) | |
tree | a60186bb23551a244df6e550ac7913c7b5c681e6 | |
parent | a3bbc153f2d98b7afc5accbd6aff04a79f20b7ad (diff) | |
download | qpid-python-d953221fc4e8b220965fb020274e7cdc47513097.tar.gz |
QPID-3809: Java Broker killed by java.net.SocketException: Broken pipe (killed by uncaught exception handler)
Applied patch from Andrew MacBean <andymacbean@gmail.com>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1241433 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueRunner.java | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueRunner.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueRunner.java index f668333319..e9d4290174 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueRunner.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueRunner.java @@ -20,16 +20,16 @@ */ package org.apache.qpid.server.queue; -import org.apache.log4j.Logger; - -import org.apache.qpid.AMQException; -import org.apache.qpid.server.logging.actors.CurrentActor; - import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; +import org.apache.log4j.Logger; +import org.apache.qpid.AMQException; +import org.apache.qpid.server.logging.actors.CurrentActor; +import org.apache.qpid.transport.TransportException; + /** * QueueRunners are Runnables used to process a queue when requiring * asynchronous message delivery to subscriptions, which is necessary @@ -73,10 +73,22 @@ public class QueueRunner implements Runnable runAgain = _queue.processQueue(this); } - catch (AMQException e) + catch (final AMQException e) { _logger.error("Exception during asynchronous delivery by " + toString(), e); } + catch (final TransportException transe) + { + final String errorMessage = "Problem during asynchronous delivery by " + toString(); + if(_logger.isDebugEnabled()) + { + _logger.debug(errorMessage, transe); + } + else + { + _logger.info(errorMessage + transe.getMessage()); + } + } finally { CurrentActor.remove(); |