You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2010/09/30 22:49:35 UTC

svn commit: r1003251 - in /cxf/trunk/rt: transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/ transports/http/src/main/java/org/apache/cxf/transport/http/ ws/addr/src/main/java/org/apache/cxf/ws/addressing/ ws/rm/src/main/java/org/a...

Author: dkulp
Date: Thu Sep 30 20:49:34 2010
New Revision: 1003251

URL: http://svn.apache.org/viewvc?rev=1003251&view=rev
Log:
[CXF-3004] Make sure the response codes for ws-add and ws-rm things are correct

Modified:
    cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
    cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
    cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
    cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java

Modified: cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java?rev=1003251&r1=1003250&r2=1003251&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java (original)
+++ cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java Thu Sep 30 20:49:34 2010
@@ -410,9 +410,6 @@ public class JettyHTTPDestinationTest ex
         Conduit partialBackChannel =
             destination.getBackChannel(inMessage, partialResponse, replyTo);
         partialBackChannel.prepare(partialResponse);
-        assertEquals("unexpected response code",
-                     202,
-                     partialResponse.get(Message.RESPONSE_CODE));
         verifyBackChannelSend(partialBackChannel, partialResponse, 202);
 
         outMessage = setUpOutMessage();

Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?rev=1003251&r1=1003250&r2=1003251&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java (original)
+++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java Thu Sep 30 20:49:34 2010
@@ -180,9 +180,6 @@ public abstract class AbstractHTTPDestin
     }
     
     protected void updateResponseHeaders(Message message) {
-        if (MessageUtils.isPartialResponse(message)) {
-            message.put(Message.RESPONSE_CODE, HttpURLConnection.HTTP_ACCEPTED);
-        }
         Map<String, List<String>> responseHeaders =
             CastUtils.cast((Map)message.get(Message.PROTOCOL_HEADERS));
         if (responseHeaders == null) {
@@ -540,7 +537,7 @@ public abstract class AbstractHTTPDestin
                     }
                 }
                 response.setStatus(status);
-            } else if (oneWay) {
+            } else if (oneWay && !MessageUtils.isPartialResponse(outMessage)) {
                 response.setStatus(HttpURLConnection.HTTP_ACCEPTED);
             } else {
                 response.setStatus(HttpURLConnection.HTTP_OK);
@@ -548,7 +545,6 @@ public abstract class AbstractHTTPDestin
 
             copyResponseHeaders(outMessage, response);
 
-            
             if (oneWay && !MessageUtils.isPartialResponse(outMessage)) {
                 response.setContentLength(0);
                 response.flushBuffer();
@@ -598,9 +594,6 @@ public abstract class AbstractHTTPDestin
          * @param message the message to be sent.
          */
         public void prepare(Message message) throws IOException {
-            if (MessageUtils.isPartialResponse(message)) {
-                message.put(Message.RESPONSE_CODE, HttpURLConnection.HTTP_ACCEPTED);
-            }
             message.put(HTTP_RESPONSE, response);
             OutputStream os = message.getContent(OutputStream.class);
             if (os == null) {

Modified: cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java?rev=1003251&r1=1003250&r2=1003251&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java (original)
+++ cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java Thu Sep 30 20:49:34 2010
@@ -1000,6 +1000,7 @@ public class MAPAggregator extends Abstr
             //inMessage.remove(AbstractHTTPDestination.HTTP_REQUEST);
             //inMessage.remove(AbstractHTTPDestination.HTTP_RESPONSE);
             inMessage.remove(Message.ASYNC_POST_RESPONSE_DISPATCH);
+            updateResponseCode(inMessage);
 
             //cache this inputstream since it's defer to use in case of async
             try {
@@ -1014,6 +1015,20 @@ public class MAPAggregator extends Abstr
                 e.printStackTrace();
             }
         }
+        
+        private void updateResponseCode(Message message) {
+            Object o = message.get("HTTP.RESPONSE");
+            if (o != null) {
+                try {
+                    o.getClass().getMethod("setStatus", Integer.TYPE)
+                        .invoke(o, HttpURLConnection.HTTP_ACCEPTED);
+                } catch (Throwable t) {
+                    //ignore
+                }
+            }
+            
+        }
+        
     }
     
     /**

Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java?rev=1003251&r1=1003250&r2=1003251&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java (original)
+++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java Thu Sep 30 20:49:34 2010
@@ -20,6 +20,7 @@
 package org.apache.cxf.ws.rm.soap;
 
 
+import java.net.HttpURLConnection;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
@@ -220,6 +221,10 @@ public class RMSoapInterceptor extends A
                 }
             }
             Node node = hdr.getFirstChild();
+            if (node != null && MessageUtils.isPartialResponse(message)) {
+                // make sure the response is returned as HTTP 200 and not 202
+                message.put(Message.RESPONSE_CODE, HttpURLConnection.HTTP_OK);
+            }
             while (node != null) {
                 Header holder = new Header(new QName(node.getNamespaceURI(), node.getLocalName()), node);
                 header.add(holder);