Author: dkulp Date: Thu Oct 13 21:07:46 2011 New Revision: 1183100 URL: http://svn.apache.org/viewvc?rev=1183100&view=rev Log: Merged revisions 1183089 via svnmerge from https://svn.us.apache.org/repos/asf/cxf/branches/2.4.x-fixes
................ r1183089 | dkulp | 2011-10-13 16:55:24 -0400 (Thu, 13 Oct 2011) | 10 lines Merged revisions 1183088 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r1183088 | dkulp | 2011-10-13 16:52:53 -0400 (Thu, 13 Oct 2011) | 2 lines If the workqueue for the http-conduit async calls is full, try to submit it for a few seconds before just handling it synchronously. ........ ................ Modified: cxf/branches/2.3.x-fixes/ (props changed) cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Propchange: cxf/branches/2.3.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?rev=1183100&r1=1183099&r2=1183100&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java (original) +++ cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Thu Oct 13 21:07:46 2011 @@ -86,6 +86,7 @@ import org.apache.cxf.transport.https.Ce import org.apache.cxf.transports.http.configuration.HTTPClientPolicy; import org.apache.cxf.transports.http.configuration.ProxyServerType; import org.apache.cxf.version.Version; +import org.apache.cxf.workqueue.AutomaticWorkQueue; import org.apache.cxf.workqueue.WorkQueueManager; import org.apache.cxf.ws.addressing.EndpointReferenceType; import org.apache.cxf.ws.policy.Assertor; @@ -2251,20 +2252,21 @@ public class HTTPConduit } } }; - Executor ex = outMessage.getExchange().get(Executor.class); - if (ex == null) { - WorkQueueManager mgr = outMessage.getExchange().get(Bus.class) - .getExtension(WorkQueueManager.class); - ex = mgr.getNamedWorkQueue("http-conduit"); + try { + Executor ex = outMessage.getExchange().get(Executor.class); if (ex == null) { - ex = mgr.getAutomaticWorkQueue(); - } - } else { - outMessage.getExchange().put(Executor.class.getName() + WorkQueueManager mgr = outMessage.getExchange().get(Bus.class) + .getExtension(WorkQueueManager.class); + AutomaticWorkQueue qu = mgr.getNamedWorkQueue("http-conduit"); + if (ex == null) { + qu = mgr.getAutomaticWorkQueue(); + } + qu.execute(runnable, 5000); + } else { + outMessage.getExchange().put(Executor.class.getName() + ".USING_SPECIFIED", Boolean.TRUE); - } - try { - ex.execute(runnable); + ex.execute(runnable); + } } catch (RejectedExecutionException rex) { LOG.warning("EXECUTOR_FULL"); handleResponseInternal();
