Author: veithen Date: Sun Jul 4 12:44:11 2010 New Revision: 960334 URL: http://svn.apache.org/viewvc?rev=960334&view=rev Log: Reverted r958696 (related to AXIS2-4751) because this change causes a regression in Rampart.
Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java?rev=960334&r1=960333&r2=960334&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java (original) +++ axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Sun Jul 4 12:44:11 2010 @@ -25,7 +25,6 @@ import org.apache.axiom.om.OMOutputForma import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; import org.apache.axis2.context.MessageContext; -import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.context.OperationContext; import org.apache.axis2.description.TransportOutDescription; import org.apache.axis2.i18n.Messages; @@ -486,50 +485,44 @@ public abstract class AbstractHTTPSender } protected HttpClient getHttpClient(MessageContext msgContext) { - ConfigurationContext configContext = msgContext.getConfigurationContext(); - - HttpClient httpClient = (HttpClient) msgContext.getProperty(HTTPConstants.CACHED_HTTP_CLIENT); - if (httpClient == null) { - httpClient = (HttpClient) configContext.getProperty(HTTPConstants.CACHED_HTTP_CLIENT); - } - if (httpClient != null) { - return httpClient; - } - - HttpConnectionManager connManager = - (HttpConnectionManager) msgContext.getProperty( - HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER); - if (connManager == null) { - connManager = - (HttpConnectionManager) msgContext.getProperty( - HTTPConstants.MUTTITHREAD_HTTP_CONNECTION_MANAGER); - } - if (connManager == null) { - // reuse HttpConnectionManager - synchronized (configContext) { - connManager = (HttpConnectionManager) configContext.getProperty( - HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER); - if (connManager == null) { - log.trace("Making new ConnectionManager"); - connManager = new MultiThreadedHttpConnectionManager(); - configContext.setProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER, - connManager); - } + HttpClient httpClient; + Object reuse = msgContext.getOptions().getProperty(HTTPConstants.REUSE_HTTP_CLIENT); + if (reuse == null) { + reuse = msgContext.getConfigurationContext().getProperty(HTTPConstants.REUSE_HTTP_CLIENT); + } + if (reuse != null && JavaUtils.isTrueExplicitly(reuse)) { + httpClient = (HttpClient) msgContext.getOptions().getProperty(HTTPConstants.CACHED_HTTP_CLIENT); + if (httpClient == null) { + httpClient = (HttpClient) msgContext.getConfigurationContext() + .getProperty(HTTPConstants.CACHED_HTTP_CLIENT); + } + if (httpClient != null) + return httpClient; + MultiThreadedHttpConnectionManager connectionManager = + new MultiThreadedHttpConnectionManager(); + httpClient = new HttpClient(connectionManager); + msgContext.getConfigurationContext() + .setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient); + } else { + HttpConnectionManager connManager = + (HttpConnectionManager) msgContext.getProperty( + HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER); + if (connManager == null) { + connManager = + (HttpConnectionManager) msgContext.getProperty( + HTTPConstants.MUTTITHREAD_HTTP_CONNECTION_MANAGER); + } + if(connManager != null){ + httpClient = new HttpClient(connManager); + } else { + //Multi threaded http connection manager has set as the default + connManager = new MultiThreadedHttpConnectionManager(); + httpClient = new HttpClient(connManager); } } - /* - * Create a new instance of HttpClient since it is not - * used in thread-safe way here. - */ - httpClient = new HttpClient(connManager); - - // Set the default timeout in case we have a connection pool starvation to 30sec - httpClient.getParams().setConnectionManagerTimeout(30000); - // Get the timeout values set in the runtime initializeTimeouts(msgContext, httpClient); - return httpClient; }