Return-Path: Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: (qmail 27625 invoked from network); 18 Nov 2010 13:02:33 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 18 Nov 2010 13:02:33 -0000 Received: (qmail 7702 invoked by uid 500); 18 Nov 2010 13:03:04 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 7581 invoked by uid 500); 18 Nov 2010 13:03:04 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 7574 invoked by uid 99); 18 Nov 2010 13:03:04 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Nov 2010 13:03:04 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Nov 2010 13:03:03 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id A5A3E23889E2; Thu, 18 Nov 2010 13:01:48 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1036443 - in /cxf/branches/2.3.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/ Date: Thu, 18 Nov 2010 13:01:48 -0000 To: commits@cxf.apache.org From: sergeyb@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101118130148.A5A3E23889E2@eris.apache.org> Author: sergeyb Date: Thu Nov 18 13:01:48 2010 New Revision: 1036443 URL: http://svn.apache.org/viewvc?rev=1036443&view=rev Log: 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.3.x-fixes/ (props changed) cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java Propchange: cxf/branches/2.3.x-fixes/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Nov 18 13:01:48 2010 @@ -1 +1 @@ -/cxf/trunk:1036258,1036391 +/cxf/trunk:1036258,1036391,1036441 Propchange: cxf/branches/2.3.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java?rev=1036443&r1=1036442&r2=1036443&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java (original) +++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java Thu Nov 18 13:01:48 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.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?rev=1036443&r1=1036442&r2=1036443&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java (original) +++ cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java Thu Nov 18 13:01:48 2010 @@ -95,6 +95,9 @@ public abstract class AbstractHTTPDestin public static final String RESPONSE_COMMITED = "http.response.done"; public static final String REQUEST_REDIRECTED = "http.request.redirected"; public static final String CXF_CONTINUATION_MESSAGE = "cxf.continuation.message"; + + private static final String HTTP_HEADERS_SETCOOKIE = "Set-Cookie"; + private static final Logger LOG = LogUtils.getL7dLogger(AbstractHTTPDestination.class); private static final long serialVersionUID = 1L; @@ -254,12 +257,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.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java?rev=1036443&r1=1036442&r2=1036443&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java (original) +++ cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java Thu Nov 18 13:01:48 2010 @@ -137,6 +137,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.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java?rev=1036443&r1=1036442&r2=1036443&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java (original) +++ cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java Thu Nov 18 13:01:48 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 cookies = r.getMetadata().get("Set-Cookie"); + assertNotNull(cookies); + assertEquals(2, cookies.size()); + } + @Test public void testOnewayProxy() throws Exception {