You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2010/11/19 18:03:57 UTC

svn commit: r1036943 - in /cxf/branches/2.2.x-fixes: ./ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ rt/transports/http/src/main/java/org/apache/cxf/transport/http/ systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/

Author: sergeyb
Date: Fri Nov 19 17:03:57 2010
New Revision: 1036943

URL: http://svn.apache.org/viewvc?rev=1036943&view=rev
Log:
Merged revisions 1036443 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/branches/2.3.x-fixes

................
  r1036443 | sergeyb | 2010-11-18 13:01:48 +0000 (Thu, 18 Nov 2010) | 9 lines
  
  Merged revisions 1036441 via svnmerge from 
  https://svn.apache.org/repos/asf/cxf/trunk
  
  ........
    r1036441 | sergeyb | 2010-11-18 12:58:52 +0000 (Thu, 18 Nov 2010) | 1 line
    
    [CXF-3112] : Applying a patch on behalf of David Hagar
  ........
................

Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
    cxf/branches/2.2.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
    cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
    cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Nov 19 17:03:57 2010
@@ -1,2 +1,2 @@
-/cxf/branches/2.3.x-fixes:1036007,1036260,1036394,1036842,1036920
-/cxf/trunk:1036004,1036258,1036391,1036840,1036917
+/cxf/branches/2.3.x-fixes:1036007,1036260,1036394,1036443,1036842,1036920
+/cxf/trunk:1036004,1036258,1036391,1036441,1036840,1036917

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java?rev=1036943&r1=1036942&r2=1036943&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java Fri Nov 19 17:03:57 2010
@@ -340,9 +340,9 @@ public class AbstractClient implements C
                     currentResponseBuilder.header(entry.getKey(), entry.getValue().get(0));
                     continue;                    
                 }
-                boolean splitPossible = !(HttpHeaders.SET_COOKIE.equalsIgnoreCase(entry.getKey())
-                                          && entry.getValue().get(0).contains(HttpHeaders.EXPIRES));
                 for (String val : entry.getValue()) {
+                    boolean splitPossible = !(HttpHeaders.SET_COOKIE.equalsIgnoreCase(entry.getKey())
+                        && val.contains(HttpHeaders.EXPIRES));
                     String[] values = splitPossible ? val.split(",") : new String[]{val};
                     for (String s : values) {
                         String theValue = s.trim();

Modified: cxf/branches/2.2.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?rev=1036943&r1=1036942&r2=1036943&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java (original)
+++ cxf/branches/2.2.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java Fri Nov 19 17:03:57 2010
@@ -94,6 +94,9 @@ public abstract class AbstractHTTPDestin
     public static final String RESPONSE_COMMITED = "http.response.done";
     public static final String REQUEST_REDIRECTED = "http.request.redirected";
     
+    
+    private static final String HTTP_HEADERS_SETCOOKIE = "Set-Cookie";
+    
     private static final Logger LOG = LogUtils.getL7dLogger(AbstractHTTPDestination.class);
     
     private static final long serialVersionUID = 1L;
@@ -255,12 +258,20 @@ public abstract class AbstractHTTPDestin
                 String header = (String)iter.next();
                 List<?> headerList = (List<?>)headers.get(header);
                 StringBuilder sb = new StringBuilder();
-                for (int i = 0; i < headerList.size(); i++) {
-                    sb.append(headerList.get(i));
-                    if (i + 1 < headerList.size()) {
-                        sb.append(',');
+
+                if (HTTP_HEADERS_SETCOOKIE.equals(header)) {
+                    for (int i = 0; i < headerList.size(); i++) {
+                        response.addHeader(header, headerList.get(i).toString());
+                    }
+                } else {
+                    for (int i = 0; i < headerList.size(); i++) {
+                        sb.append(headerList.get(i));
+                        if (i + 1 < headerList.size()) {
+                            sb.append(',');
+                        }
                     }
                 }
+
                 response.addHeader(header, sb.toString());
             }
         } else {

Modified: cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java?rev=1036943&r1=1036942&r2=1036943&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java (original)
+++ cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java Fri Nov 19 17:03:57 2010
@@ -133,6 +133,14 @@ public class BookStore {
                                     .build();
     }
     
+
+    @GET
+    @Path("settwocookies")
+    public Response setTwoCookies() {
+        return Response.ok().header("Set-Cookie", "JSESSIONID=0475F7F30A26E5B0C15D69; Path=/")
+            .header("Set-Cookie", "COOKIETWO=dummy; Expires=Sat, 20-Nov-2010 19:11:32 GMT; Path=/").build();
+    }
+    
     @GET
     @Path("propogateexception")
     public Book propogateException() throws BookNotFoundFault {

Modified: cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java?rev=1036943&r1=1036942&r2=1036943&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java (original)
+++ cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java Fri Nov 19 17:03:57 2010
@@ -92,6 +92,16 @@ public class JAXRSClientServerBookTest e
         assertEquals(1, cookies.size());
     }
     
+    @Test
+    public void testSetTwoCookieWebClient() throws Exception {
+        WebClient client = WebClient.create("http://localhost:" + PORT + "/bookstore/settwocookies");
+        Response r = client.type("*/*").get();
+        assertEquals(200, r.getStatus());
+        List<Object> cookies = r.getMetadata().get("Set-Cookie");
+        assertNotNull(cookies);
+        assertEquals(2, cookies.size());
+    }
+
     
     @Test
     public void testOnewayProxy() throws Exception {