You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2010/09/28 14:19:10 UTC

svn commit: r1002140 - /axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java

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