Author: veithen
Date: Tue Sep 28 11:04:33 2010
New Revision: 1002114

URL: http://svn.apache.org/viewvc?rev=1002114&view=rev
Log:
Applied a proper fix for AXIS2-4648: instead of doing some fancy guessing, 
always use the TransportOutDescription passed to the init method of 
CommonsHTTPTransportSender. Also removed an unnecessary null check.

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=1002114&r1=1002113&r2=1002114&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 11:04:33 2010
@@ -22,16 +22,13 @@ package org.apache.axis2.transport.http;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
-import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.OperationContext;
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.description.TransportOutDescription;
 import org.apache.axis2.description.InOutAxisOperation;
-import org.apache.axis2.description.WSDL2Constants;
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.transport.MessageFormatter;
 import org.apache.axis2.transport.OutTransportInfo;
@@ -58,7 +55,12 @@ import java.util.zip.GZIPOutputStream;
 
 public class CommonsHTTPTransportSender extends AbstractHandler implements
         TransportSender {
-
+    /**
+     * The {...@link TransportOutDescription} object received by the call to
+     * {...@link #init(ConfigurationContext, TransportOutDescription)}.
+     */
+    private TransportOutDescription transportOut;
+    
     int soTimeout = HTTPConstants.DEFAULT_SO_TIMEOUT;
 
     private static final Log log = LogFactory
@@ -84,7 +86,8 @@ public class CommonsHTTPTransportSender 
 
     public void init(ConfigurationContext confContext,
                      TransportOutDescription transportOut) throws AxisFault {
-
+        this.transportOut = transportOut;
+        
         // <parameter name="PROTOCOL">HTTP/1.0</parameter> or
         // <parameter name="PROTOCOL">HTTP/1.1</parameter> is
         // checked
@@ -158,19 +161,6 @@ public class CommonsHTTPTransportSender 
                 format.setMimeBoundary((String) mimeBoundaryProperty);
             }
 
-            AxisConfiguration axisConfiguration = 
msgContext.getConfigurationContext().getAxisConfiguration();
-            TransportOutDescription transportOut = null;
-            if (msgContext.getTransportOut() != null){
-                 transportOut = msgContext.getTransportOut();
-            } else if (msgContext.getIncomingTransportName() != null){
-                transportOut = 
axisConfiguration.getTransportOut(msgContext.getIncomingTransportName());
-            } else if 
(msgContext.getOperationContext().getMessageContext(WSDL2Constants.MESSAGE_LABEL_IN)
 != null){
-                String transportName = 
msgContext.getOperationContext().getMessageContext(WSDL2Constants.MESSAGE_LABEL_IN).getIncomingTransportName();
-                transportOut = 
msgContext.getConfigurationContext().getAxisConfiguration().getTransportOut(transportName);
-            } else {
-                transportOut = 
msgContext.getConfigurationContext().getAxisConfiguration().getTransportOut(Constants.TRANSPORT_HTTP);
-            }
-
              // set the timeout properteies
 
             Parameter soTimeoutParam = 
transportOut.getParameter(HTTPConstants.SO_TIMEOUT);
@@ -186,21 +176,19 @@ public class CommonsHTTPTransportSender 
             }
 
             //if a parameter has set been set, we will omit the SOAP action 
for SOAP 1.2
-            if (transportOut != null) {
-                if (!msgContext.isSOAP11()) {
-                    Parameter param = 
transportOut.getParameter(HTTPConstants.OMIT_SOAP_12_ACTION);
-                    Object parameterValue = null;
-                    if (param != null) {
-                        parameterValue = param.getValue();
-                    }
+            if (!msgContext.isSOAP11()) {
+                Parameter param = 
transportOut.getParameter(HTTPConstants.OMIT_SOAP_12_ACTION);
+                Object parameterValue = null;
+                if (param != null) {
+                    parameterValue = param.getValue();
+                }
 
-                    if (parameterValue != null && 
JavaUtils.isTrueExplicitly(parameterValue)) {
-                        //Check whether user has already overridden this.
-                        Object propertyValue = 
msgContext.getProperty(Constants.Configuration.DISABLE_SOAP_ACTION);
-                        if (propertyValue == null || 
!JavaUtils.isFalseExplicitly(propertyValue)) {
-                            
msgContext.setProperty(Constants.Configuration.DISABLE_SOAP_ACTION,
-                                    Boolean.TRUE);
-                        }
+                if (parameterValue != null && 
JavaUtils.isTrueExplicitly(parameterValue)) {
+                    //Check whether user has already overridden this.
+                    Object propertyValue = 
msgContext.getProperty(Constants.Configuration.DISABLE_SOAP_ACTION);
+                    if (propertyValue == null || 
!JavaUtils.isFalseExplicitly(propertyValue)) {
+                        
msgContext.setProperty(Constants.Configuration.DISABLE_SOAP_ACTION,
+                                Boolean.TRUE);
                     }
                 }
             }


Reply via email to