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