You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2011/10/13 23:07:46 UTC

svn commit: r1183100 - in /cxf/branches/2.3.x-fixes: ./ rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java

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();