You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by mi...@apache.org on 2013/07/21 13:27:59 UTC

svn commit: r1505344 - /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/EnqueueMediator.java

Author: miyuru
Date: Sun Jul 21 11:27:59 2013
New Revision: 1505344

URL: http://svn.apache.org/r1505344
Log:
fixing SYNAPSE-946

Modified:
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/EnqueueMediator.java

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/EnqueueMediator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/EnqueueMediator.java?rev=1505344&r1=1505343&r2=1505344&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/EnqueueMediator.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/EnqueueMediator.java Sun Jul 21 11:27:59 2013
@@ -28,6 +28,8 @@ import org.apache.synapse.SynapseLog;
 import org.apache.synapse.commons.executors.PriorityExecutor;
 import org.apache.synapse.core.axis2.Axis2MessageContext;
 
+import java.util.concurrent.RejectedExecutionException;
+
 /**
  * This mediator execute a given sequence with a given priority.
  *
@@ -61,8 +63,14 @@ public class EnqueueMediator extends Abs
         Mediator m = synCtx.getSequence(sequenceName);
         if (m != null && m instanceof SequenceMediator) {
             MediatorWorker worker = new MediatorWorker(m, synCtx);
-            // execute with the given priority
-            executor.execute(worker, priority);
+            try {
+                // execute with the given priority
+                executor.execute(worker, priority);
+            } catch (RejectedExecutionException ex) {
+                //if RejectedExecutionException, jump to fault handler
+                handleException("Unable to process message in priority executor " + executorName + " with priority " +
+                        priority + ". Thread pool exhausted.", ex, synCtx);
+            }
 
             // with the nio transport, this causes the listener not to write a 202
             // Accepted response, as this implies that Synapse does not yet know if