Author: kwall
Date: Tue Feb  7 11:41:43 2012
New Revision: 1241433

URL: http://svn.apache.org/viewvc?rev=1241433&view=rev
Log:
QPID-3809: Java Broker killed by java.net.SocketException: Broken pipe (killed 
by uncaught exception handler)

Applied patch from Andrew MacBean <[email protected]>

Modified:
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueRunner.java

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueRunner.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueRunner.java?rev=1241433&r1=1241432&r2=1241433&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueRunner.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueRunner.java
 Tue Feb  7 11:41:43 2012
@@ -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 Runn
 
                 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();



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to