You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ay...@apache.org on 2012/04/20 19:49:09 UTC
svn commit: r1328463 -
/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/impl/InternalContextUtils.java
Author: ay
Date: Fri Apr 20 17:49:09 2012
New Revision: 1328463
URL: http://svn.apache.org/viewvc?rev=1328463&view=rev
Log:
[CXF-4257] Should catch RejectedExecutionException in WS-Addr's rebaseResponse
Modified:
cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/impl/InternalContextUtils.java
Modified: cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/impl/InternalContextUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/impl/InternalContextUtils.java?rev=1328463&r1=1328462&r2=1328463&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/impl/InternalContextUtils.java (original)
+++ cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/impl/InternalContextUtils.java Fri Apr 20 17:49:09 2012
@@ -23,6 +23,7 @@ package org.apache.cxf.ws.addressing.imp
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.Executor;
+import java.util.concurrent.RejectedExecutionException;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -193,12 +194,20 @@ final class InternalContextUtils {
// pause dispatch on current thread ...
inMessage.getInterceptorChain().pause();
- // ... and resume on executor thread
- getExecutor(inMessage).execute(new Runnable() {
- public void run() {
- inMessage.getInterceptorChain().resume();
- }
- });
+ try {
+ // ... and resume on executor thread
+ getExecutor(inMessage).execute(new Runnable() {
+ public void run() {
+ inMessage.getInterceptorChain().resume();
+ }
+ });
+ } catch (RejectedExecutionException e) {
+ //the executor queue is full, so run the task in the caller thread
+ LOG.warning(
+ "Executor queue is full, use the caller thread."
+ + " Users can specify a larger executor queue to avoid this.");
+ inMessage.getInterceptorChain().resume();
+ }
}
}
} catch (Exception e) {