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


Reply via email to