Author: veithen
Date: Tue Sep 28 12:19:10 2010
New Revision: 1002140

URL: http://svn.apache.org/viewvc?rev=1002140&view=rev
Log:
AXIS2-4716: Fixed a concurrency issue in CommonsHTTPTransportSender.

Modified:
    
axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java

Modified: 
axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java?rev=1002140&r1=1002139&r2=1002140&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
 Tue Sep 28 12:19:10 2010
@@ -66,9 +66,18 @@ public class CommonsHTTPTransportSender 
     private static final Log log = LogFactory
             .getLog(CommonsHTTPTransportSender.class);
 
-    protected String httpVersion = HTTPConstants.HEADER_PROTOCOL_11;
+    /**
+     * Default HTTP version as configured in <tt>axis2.xml</tt>. This may be 
overridden on a per
+     * message basis using the {...@link HTTPConstants#HTTP_PROTOCOL_VERSION} 
property.
+     */
+    private String defaultHttpVersion = HTTPConstants.HEADER_PROTOCOL_11;
 
-    private boolean chunked = false;
+    /**
+     * Specifies whether chunked encoding is enabled by default. This is 
configured in
+     * <tt>axis2.xml</tt> and may be overridden on a per message basis using 
the
+     * {...@link HTTPConstants#CHUNKED} property.
+     */
+    private boolean defaultChunked = false;
 
     int connectionTimeout = HTTPConstants.DEFAULT_CONNECTION_TIMEOUT;
 
@@ -95,7 +104,7 @@ public class CommonsHTTPTransportSender 
                 .getParameter(HTTPConstants.PROTOCOL_VERSION);
         if (version != null) {
             if (HTTPConstants.HEADER_PROTOCOL_11.equals(version.getValue())) {
-                httpVersion = HTTPConstants.HEADER_PROTOCOL_11;
+                defaultHttpVersion = HTTPConstants.HEADER_PROTOCOL_11;
 
                 Parameter transferEncoding = transportOut
                         .getParameter(HTTPConstants.HEADER_TRANSFER_ENCODING);
@@ -103,11 +112,11 @@ public class CommonsHTTPTransportSender 
                 if ((transferEncoding != null)
                         && HTTPConstants.HEADER_TRANSFER_ENCODING_CHUNKED
                         .equals(transferEncoding.getValue())) {
-                    chunked = true;
+                    defaultChunked = true;
                 }
             } else if (HTTPConstants.HEADER_PROTOCOL_10.equals(version
                     .getValue())) {
-                httpVersion = HTTPConstants.HEADER_PROTOCOL_10;
+                defaultHttpVersion = HTTPConstants.HEADER_PROTOCOL_10;
             } else {
                 throw new AxisFault("Parameter "
                         + HTTPConstants.PROTOCOL_VERSION
@@ -368,14 +377,20 @@ public class CommonsHTTPTransportSender 
 
             sender = new HTTPSender();
 
+            boolean chunked;
             if (messageContext.getProperty(HTTPConstants.CHUNKED) != null) {
                 chunked = JavaUtils.isTrueExplicitly(messageContext
                         .getProperty(HTTPConstants.CHUNKED));
+            } else {
+                chunked = defaultChunked;
             }
 
+            String httpVersion;
             if 
(messageContext.getProperty(HTTPConstants.HTTP_PROTOCOL_VERSION) != null) {
                 httpVersion = (String) messageContext
                         .getProperty(HTTPConstants.HTTP_PROTOCOL_VERSION);
+            } else {
+                httpVersion = defaultHttpVersion;
             }
             // Following order needed to be preserved because,
             // HTTP/1.0 does not support chunk encoding


Reply via email to