You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by xu...@apache.org on 2011/05/10 16:39:51 UTC

svn commit: r1101480 - /geronimo/server/trunk/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/Axis2WebServiceContainer.java

Author: xuhaihong
Date: Tue May 10 14:39:51 2011
New Revision: 1101480

URL: http://svn.apache.org/viewvc?rev=1101480&view=rev
Log:
Set the response status code correctly, some codes are refered from AxisServlet from axis2-http-transport

Modified:
    geronimo/server/trunk/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/Axis2WebServiceContainer.java

Modified: geronimo/server/trunk/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/Axis2WebServiceContainer.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/Axis2WebServiceContainer.java?rev=1101480&r1=1101479&r2=1101480&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/Axis2WebServiceContainer.java (original)
+++ geronimo/server/trunk/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/Axis2WebServiceContainer.java Tue May 10 14:39:51 2011
@@ -66,6 +66,7 @@ import org.apache.axis2.jaxws.server.JAX
 import org.apache.axis2.jaxws.server.endpoint.lifecycle.factory.EndpointLifecycleManagerFactory;
 import org.apache.axis2.transport.OutTransportInfo;
 import org.apache.axis2.transport.RequestResponseTransport;
+import org.apache.axis2.transport.TransportUtils;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.axis2.transport.http.HTTPTransportReceiver;
 import org.apache.axis2.transport.http.HTTPTransportUtils;
@@ -334,24 +335,25 @@ public abstract class Axis2WebServiceCon
             throw new UnsupportedOperationException("[" + request.getMethod() + " ] method not supported");
         }
 
-        // Finalize response
-        OperationContext operationContext = msgContext.getOperationContext();
-        Object contextWritten = null;
-        Object isTwoChannel = null;
-        if (operationContext != null) {
-            contextWritten = operationContext.getProperty(Constants.RESPONSE_WRITTEN);
-            isTwoChannel = operationContext.getProperty(Constants.DIFFERENT_EPR);
-        }
-
-        if ((contextWritten != null) && Constants.VALUE_TRUE.equals(contextWritten)) {
+        // Finalize response        
+        if (TransportUtils.isResponseWritten(msgContext)) {
+            OperationContext operationContext = msgContext.getOperationContext();
+            Object isTwoChannel = null;
+            if (operationContext != null) {
+                isTwoChannel = operationContext.getProperty(Constants.DIFFERENT_EPR);
+            }
             if ((isTwoChannel != null) && Constants.VALUE_TRUE.equals(isTwoChannel)) {
                 response.setStatusCode(HttpURLConnection.HTTP_ACCEPTED);
                 return;
             }
-            response.setStatusCode(HttpURLConnection.HTTP_OK);
         } else {
-            response.setStatusCode(HttpURLConnection.HTTP_ACCEPTED);
+            RequestResponseTransport requestResponseTransport = (RequestResponseTransport) msgContext.getProperty(RequestResponseTransport.TRANSPORT_CONTROL);
+            if (requestResponseTransport != null && requestResponseTransport.getStatus() != RequestResponseTransport.RequestResponseTransportStatus.SIGNALLED) {
+                response.setStatusCode(HttpURLConnection.HTTP_ACCEPTED);
+                return;
+            }
         }
+        response.setStatusCode(HttpURLConnection.HTTP_OK);
     }
 
     public void destroy() {