Thanks Oleg,
Did you have time to look at my JIRA HTTPCLIENT-1705 ?

Thanks
Regards

On Fri, Dec 18, 2015 at 10:51 AM, Oleg Kalnichevski <ol...@apache.org>
wrote:

> On Wed, 2015-12-16 at 21:26 +0100, Philippe Mouawad wrote:
> > Hi Oleg,
> > First, big thanks for your help on this, it is really valuable ! And I
> > really appreciate your patience .
> > Second, I  made a mistake in my test case of HTTPCLIENT-1705 JIRA issue,
> > which I fixed and reuploaded tonight few seconds ago.
> > Third, we wanted to release a version by either end of year or begining
> of
> > next year.
> >
>
> I'll try to get 4.5.2 released in Jan 2016, but do not take it as a
> promise. It may take longer unless someone else volunteers to RM the
> release.
>
> > Is migration to HC5.0 a big thing ? Do you advise to target 4.5.2 or 5.0
> ?
> > the alpha state of 5.0 seems risky to me.
> >
>
> Yes, it will be a big thing. You should not even concern yourself with
> HC 5.0 unless you want to contribute to its development.
>
> Oleg
>
>
> > Thanks
> > Regards
> > Philippe
> >
> >
> > On Wed, Dec 16, 2015 at 1:57 PM, Oleg Kalnichevski <ol...@apache.org>
> wrote:
> >
> > > On Tue, 2015-12-15 at 14:16 +0100, Philippe Mouawad wrote:
> > > > Hi ,
> > > > One last question, when is release of 4.5.2 expected as it fixes 2
> bugs
> > > we
> > > > are facing in JMeter.
> > > >
> > > > Thanks
> > > > Regards
> > > >
> > >
> > > Philippe
> > >
> > > I was not planning to do HC 4.5.2 any time soon. I would very much
> > > rather get the first alpha of HC 5.0. How soon do you need it?
> > >
> > > Oleg
> > >
> > >
> > > > On Tue, Dec 15, 2015 at 2:05 PM, Philippe Mouawad <
> > > > philippe.moua...@gmail.com> wrote:
> > > >
> > > > >
> > > > >
> > > > > On Tue, Dec 15, 2015 at 9:36 AM, Oleg Kalnichevski <
> ol...@apache.org>
> > > > > wrote:
> > > > >
> > > > >> On Mon, 2015-12-14 at 21:41 +0100, Philippe Mouawad wrote:
> > > > >> > Hello Oleg,
> > > > >> > Thanks .
> > > > >> >
> > > > >>
> > > > >> Test case #testParseCookies
> > > > >>
> > > > >> The rest case does not look right to me. I am not sure I
> understand
> > > what
> > > > >> you are trying to test here.
> > > > >>
> > > > > Indeed, bad copy paste.
> > > > >
> > > > > The test fixed below works fine with HTTPCLIENT 4.5.1 so issue is
> on
> > > > > JMeter side.
> > > > >
> > > > >>
> > > > >> Test case #testParseCookies
> > > > >>
> > > > >>
> > > > >
> > > > >> The cookie in question does not have a version attribute
> mandatory for
> > > > >> standard (RFC 2109 and RFC 2965) cookies. Therefore it is parsed
> as
> > > > >> Netscape style cookie in which case comma is not considered a
> valid
> > > > >> header element delimiter and is treated as normal character.
> > > > >>
> > > > >
> > > > > Thanks for explanation.
> > > > > Note that test case worked fine in HC3. Was it a bug in HC3 ?
> > > > >
> > > > >
> > > > >>
> > > > >> Oleg
> > > > >>
> > > > >>
> > > > >> > Here it is:
> > > > >> >
> > > > >> > /*
> > > > >> >  *
> > > ====================================================================
> > > > >> >  * Licensed to the Apache Software Foundation (ASF) under one
> > > > >> >  * or more contributor license agreements.  See the NOTICE file
> > > > >> >  * distributed with this work for additional information
> > > > >> >  * regarding copyright ownership.  The ASF licenses this file
> > > > >> >  * to you under the Apache License, Version 2.0 (the
> > > > >> >  * "License"); you may not use this file except in compliance
> > > > >> >  * with the License.  You may obtain a copy of the License at
> > > > >> >  *
> > > > >> >  *   http://www.apache.org/licenses/LICENSE-2.0
> > > > >> >  *
> > > > >> >  * Unless required by applicable law or agreed to in writing,
> > > > >> >  * software distributed under the License is distributed on an
> > > > >> >  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > > > >> >  * KIND, either express or implied.  See the License for the
> > > > >> >  * specific language governing permissions and limitations
> > > > >> >  * under the License.
> > > > >> >  *
> > > ====================================================================
> > > > >> >  *
> > > > >> >  * This software consists of voluntary contributions made by
> many
> > > > >> >  * individuals on behalf of the Apache Software Foundation.  For
> > > more
> > > > >> >  * information on the Apache Software Foundation, please see
> > > > >> >  * <http://www.apache.org/>.
> > > > >> >  *
> > > > >> >  */
> > > > >> > package org.apache.http.client.protocol;
> > > > >> >
> > > > >> > import java.util.List;
> > > > >> >
> > > > >> > import org.apache.http.Header;
> > > > >> > import org.apache.http.HttpResponse;
> > > > >> > import org.apache.http.HttpResponseInterceptor;
> > > > >> > import org.apache.http.HttpVersion;
> > > > >> > import org.apache.http.client.CookieStore;
> > > > >> > import org.apache.http.cookie.Cookie;
> > > > >> > import org.apache.http.cookie.CookieOrigin;
> > > > >> > import org.apache.http.cookie.CookieSpec;
> > > > >> > import org.apache.http.cookie.SM;
> > > > >> > import org.apache.http.impl.client.BasicCookieStore;
> > > > >> > import org.apache.http.impl.cookie.DefaultCookieSpec;
> > > > >> > import org.apache.http.message.BasicHttpResponse;
> > > > >> > import org.apache.http.util.Asserts;
> > > > >> > import org.junit.Assert;
> > > > >> > import org.junit.Before;
> > > > >> > import org.junit.Test;
> > > > >> >
> > > > >> > public class TestResponseProcessCookies {
> > > > >> >
> > > > >> >     private CookieOrigin cookieOrigin;
> > > > >> >     private CookieSpec cookieSpec;
> > > > >> >     private CookieStore cookieStore;
> > > > >> >
> > > > >> >     @Before
> > > > >> >     public void setUp() throws Exception {
> > > > >> >         this.cookieOrigin = new CookieOrigin("localhost", 80,
> "/",
> > > > >> false);
> > > > >> >         this.cookieSpec = new DefaultCookieSpec();
> > > > >> >         this.cookieStore = new BasicCookieStore();
> > > > >> >     }
> > > > >> >
> > > > >> >     @Test(expected=IllegalArgumentException.class)
> > > > >> >     public void testResponseParameterCheck() throws Exception {
> > > > >> >         final HttpClientContext context =
> > > HttpClientContext.create();
> > > > >> >         final HttpResponseInterceptor interceptor = new
> > > > >> > ResponseProcessCookies();
> > > > >> >         interceptor.process(null, context);
> > > > >> >     }
> > > > >> >
> > > > >> >     @Test(expected=IllegalArgumentException.class)
> > > > >> >     public void testContextParameterCheck() throws Exception {
> > > > >> >         final HttpResponse response = new
> > > > >> > BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> > > > >> >         final HttpResponseInterceptor interceptor = new
> > > > >> > ResponseProcessCookies();
> > > > >> >         interceptor.process(response, null);
> > > > >> >     }
> > > > >> >
> > > > >> >     @Test
> > > > >> >     public void testParseMultipleCookies() throws Exception {
> > > > >> >         final HttpResponse response = new
> > > > >> > BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> > > > >> >         response.addHeader(SM.SET_COOKIE, "test1=1;
> > > comment=\"how,now\",
> > > > >> > test2=2; version=1");
> > > > >> >
> > > > >> >         final HttpClientContext context =
> > > HttpClientContext.create();
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> > > > >> > this.cookieOrigin);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> > > > >> > this.cookieSpec);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_STORE,
> > > > >> > this.cookieStore);
> > > > >> >
> > > > >> >         final HttpResponseInterceptor interceptor = new
> > > > >> > ResponseProcessCookies();
> > > > >> >         interceptor.process(response, context);
> > > > >> >
> > > > >> >         final List<Cookie> cookies =
> this.cookieStore.getCookies();
> > > > >> >         Assert.assertNotNull(cookies);
> > > > >> >         Assert.assertEquals(1, cookies.size());
> > > > >> >         final Cookie cookie = cookies.get(0);
> > > > >> >         Assert.assertEquals(0, cookie.getVersion());
> > > > >> >         Assert.assertEquals("name1", cookie.getName());
> > > > >> >         Assert.assertEquals("value1", cookie.getValue());
> > > > >> >         Assert.assertEquals("localhost", cookie.getDomain());
> > > > >> >         Assert.assertEquals("/", cookie.getPath());
> > > > >> >     }
> > > > >> >
> > > > >> >     @Test
> > > > >> >     public void testParseCookies() throws Exception {
> > > > >> >         final HttpResponse response = new
> > > > >> > BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> > > > >> >         response.addHeader(SM.SET_COOKIE, "name1=value1");
> > > > >> >
> > > > >> >         final HttpClientContext context =
> > > HttpClientContext.create();
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> > > > >> > this.cookieOrigin);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> > > > >> > this.cookieSpec);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_STORE,
> > > > >> > this.cookieStore);
> > > > >> >
> > > > >> >         final HttpResponseInterceptor interceptor = new
> > > > >> > ResponseProcessCookies();
> > > > >> >         interceptor.process(response, context);
> > > > >> >
> > > > >> >         final List<Cookie> cookies =
> this.cookieStore.getCookies();
> > > > >> >         List<Header> lstHdr = cookieSpec.formatCookies(cookies);
> > > > >> >         StringBuilder sbHdr = new StringBuilder();
> > > > >> >         for (Header header : lstHdr) {
> > > > >> >             sbHdr.append(header.getValue());
> > > > >> >         }
> > > > >> >         org.junit.Assert.assertEquals("test1=1; test2=2",
> > > > >> sbHdr.toString());
> > > > >> >     }
> > > > >> >     @Test
> > > > >> >     public void testParseCookies2() throws Exception {
> > > > >> >         final HttpResponse response = new
> > > > >> > BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> > > > >> >         response.addHeader(SM.SET_COOKIE, "test1=1;secure,
> > > > >> test2=2;secure");
> > > > >> >
> > > > >> >         final HttpClientContext context =
> > > HttpClientContext.create();
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> > > > >> > this.cookieOrigin);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> > > > >> > this.cookieSpec);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_STORE,
> > > > >> > this.cookieStore);
> > > > >> >
> > > > >> >         final HttpResponseInterceptor interceptor = new
> > > > >> > ResponseProcessCookies();
> > > > >> >         interceptor.process(response, context);
> > > > >> >
> > > > >> >         final List<Cookie> cookies =
> this.cookieStore.getCookies();
> > > > >> >         List<Header> lstHdr = cookieSpec.formatCookies(cookies);
> > > > >> >         StringBuilder sbHdr = new StringBuilder();
> > > > >> >         for (Header header : lstHdr) {
> > > > >> >             sbHdr.append(header.getValue());
> > > > >> >         }
> > > > >> >         org.junit.Assert.assertEquals("test1=1; test2=2",
> > > > >> sbHdr.toString());
> > > > >> >     }
> > > > >> >
> > > > >> >     @Test
> > > > >> >     public void testNoCookieOrigin() throws Exception {
> > > > >> >         final HttpResponse response = new
> > > > >> > BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> > > > >> >         response.addHeader(SM.SET_COOKIE, "name1=value1");
> > > > >> >
> > > > >> >         final HttpClientContext context =
> > > HttpClientContext.create();
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> null);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> > > > >> > this.cookieSpec);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_STORE,
> > > > >> > this.cookieStore);
> > > > >> >
> > > > >> >         final HttpResponseInterceptor interceptor = new
> > > > >> > ResponseProcessCookies();
> > > > >> >         interceptor.process(response, context);
> > > > >> >
> > > > >> >         final List<Cookie> cookies =
> this.cookieStore.getCookies();
> > > > >> >         Assert.assertNotNull(cookies);
> > > > >> >         Assert.assertEquals(0, cookies.size());
> > > > >> >     }
> > > > >> >
> > > > >> >     @Test
> > > > >> >     public void testNoCookieSpec() throws Exception {
> > > > >> >         final HttpResponse response = new
> > > > >> > BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> > > > >> >         response.addHeader(SM.SET_COOKIE, "name1=value1");
> > > > >> >
> > > > >> >         final HttpClientContext context =
> > > HttpClientContext.create();
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> > > > >> > this.cookieOrigin);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> null);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_STORE,
> > > > >> > this.cookieStore);
> > > > >> >
> > > > >> >         final HttpResponseInterceptor interceptor = new
> > > > >> > ResponseProcessCookies();
> > > > >> >         interceptor.process(response, context);
> > > > >> >
> > > > >> >         final List<Cookie> cookies =
> this.cookieStore.getCookies();
> > > > >> >         Assert.assertNotNull(cookies);
> > > > >> >         Assert.assertEquals(0, cookies.size());
> > > > >> >     }
> > > > >> >
> > > > >> >     @Test
> > > > >> >     public void testNoCookieStore() throws Exception {
> > > > >> >         final HttpResponse response = new
> > > > >> > BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> > > > >> >         response.addHeader(SM.SET_COOKIE, "name1=value1");
> > > > >> >
> > > > >> >         final HttpClientContext context =
> > > HttpClientContext.create();
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> > > > >> > this.cookieOrigin);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> > > > >> > this.cookieSpec);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_STORE,
> null);
> > > > >> >
> > > > >> >         final HttpResponseInterceptor interceptor = new
> > > > >> > ResponseProcessCookies();
> > > > >> >         interceptor.process(response, context);
> > > > >> >
> > > > >> >         final List<Cookie> cookies =
> this.cookieStore.getCookies();
> > > > >> >         Assert.assertNotNull(cookies);
> > > > >> >         Assert.assertEquals(0, cookies.size());
> > > > >> >     }
> > > > >> >
> > > > >> >     @Test
> > > > >> >     public void testSetCookie2OverrideSetCookie() throws
> Exception {
> > > > >> >         final HttpResponse response = new
> > > > >> > BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> > > > >> >         response.addHeader(SM.SET_COOKIE, "name1=value1");
> > > > >> >         response.addHeader(SM.SET_COOKIE2, "name1=value2;
> > > Version=1");
> > > > >> >
> > > > >> >         final HttpClientContext context =
> > > HttpClientContext.create();
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> > > > >> > this.cookieOrigin);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> > > > >> > this.cookieSpec);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_STORE,
> > > > >> > this.cookieStore);
> > > > >> >
> > > > >> >         final HttpResponseInterceptor interceptor = new
> > > > >> > ResponseProcessCookies();
> > > > >> >         interceptor.process(response, context);
> > > > >> >
> > > > >> >         final List<Cookie> cookies =
> this.cookieStore.getCookies();
> > > > >> >         Assert.assertNotNull(cookies);
> > > > >> >         Assert.assertEquals(1, cookies.size());
> > > > >> >         final Cookie cookie = cookies.get(0);
> > > > >> >         Assert.assertEquals(1, cookie.getVersion());
> > > > >> >         Assert.assertEquals("name1", cookie.getName());
> > > > >> >         Assert.assertEquals("value2", cookie.getValue());
> > > > >> >         Assert.assertEquals("localhost.local",
> cookie.getDomain());
> > > > >> >         Assert.assertEquals("/", cookie.getPath());
> > > > >> >     }
> > > > >> >
> > > > >> >     @Test
> > > > >> >     public void testInvalidHeader() throws Exception {
> > > > >> >         final HttpResponse response = new
> > > > >> > BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> > > > >> >         response.addHeader(SM.SET_COOKIE2, "name=value;
> > > Version=crap");
> > > > >> >
> > > > >> >         final HttpClientContext context =
> > > HttpClientContext.create();
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> > > > >> > this.cookieOrigin);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> > > > >> > this.cookieSpec);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_STORE,
> > > > >> > this.cookieStore);
> > > > >> >
> > > > >> >         final HttpResponseInterceptor interceptor = new
> > > > >> > ResponseProcessCookies();
> > > > >> >         interceptor.process(response, context);
> > > > >> >
> > > > >> >         final List<Cookie> cookies =
> this.cookieStore.getCookies();
> > > > >> >         Assert.assertNotNull(cookies);
> > > > >> >         Assert.assertTrue(cookies.isEmpty());
> > > > >> >     }
> > > > >> >
> > > > >> >     @Test
> > > > >> >     public void testCookieRejected() throws Exception {
> > > > >> >         final HttpResponse response = new
> > > > >> > BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> > > > >> >         response.addHeader(SM.SET_COOKIE2, "name=value; Domain=
> > > > >> > www.somedomain.com; Version=1");
> > > > >> >
> > > > >> >         final HttpClientContext context =
> > > HttpClientContext.create();
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> > > > >> > this.cookieOrigin);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> > > > >> > this.cookieSpec);
> > > > >> >         context.setAttribute(HttpClientContext.COOKIE_STORE,
> > > > >> > this.cookieStore);
> > > > >> >
> > > > >> >         final HttpResponseInterceptor interceptor = new
> > > > >> > ResponseProcessCookies();
> > > > >> >         interceptor.process(response, context);
> > > > >> >
> > > > >> >         final List<Cookie> cookies =
> this.cookieStore.getCookies();
> > > > >> >         Assert.assertNotNull(cookies);
> > > > >> >         Assert.assertTrue(cookies.isEmpty());
> > > > >> >     }
> > > > >> >
> > > > >> > }
> > > > >> >
> > > > >> >
> > > > >> > On Mon, Dec 14, 2015 at 9:34 PM, Oleg Kalnichevski <
> > > ol...@apache.org>
> > > > >> wrote:
> > > > >> >
> > > > >> > > On Sun, 2015-12-13 at 22:28 +0100, Philippe Mouawad wrote:
> > > > >> > > > Finally, for those  2 I am not sure  as per RFC6265, to use
> > > them ,
> > > > >> put
> > > > >> > > code
> > > > >> > > > in
> org.apache.http.client.protocol.TestResponseProcessCookies.
> > > > >> > > > They worked with HC3 but it does not mean they should work
> with
> > > > >> HC4, but
> > > > >> > > I
> > > > >> > > > would like a confirmation:
> > > > >> > > >
> > > > >> > >
> > > > >> > > I cannot get the tests to compile due to missing instance
> > > variables
> > > > >> > > cookieOrigin, cookieSpec and cookieStore. I'll take another
> look
> > > if
> > > > >> you
> > > > >> > > post the complete class.
> > > > >> > >
> > > > >> > > Oleg
> > > > >> > >
> > > > >> > >
> > > > >> > > >
> > > > >> > > >     @Test
> > > > >> > > >     public void testParseCookies() throws Exception {
> > > > >> > > >         final HttpResponse response = new
> > > > >> > > > BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> > > > >> > > >         response.addHeader(SM.SET_COOKIE, "name1=value1");
> > > > >> > > >
> > > > >> > > >         final HttpClientContext context =
> > > > >> HttpClientContext.create();
> > > > >> > > >
>  context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> > > > >> > > > this.cookieOrigin);
> > > > >> > > >         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> > > > >> > > > this.cookieSpec);
> > > > >> > > >         context.setAttribute(HttpClientContext.COOKIE_STORE,
> > > > >> > > > this.cookieStore);
> > > > >> > > >
> > > > >> > > >         final HttpResponseInterceptor interceptor = new
> > > > >> > > > ResponseProcessCookies();
> > > > >> > > >         interceptor.process(response, context);
> > > > >> > > >
> > > > >> > > >         final List<Cookie> cookies =
> > > this.cookieStore.getCookies();
> > > > >> > > >         List<Header> lstHdr =
> cookieSpec.formatCookies(cookies);
> > > > >> > > >         StringBuilder sbHdr = new StringBuilder();
> > > > >> > > >         for (Header header : lstHdr) {
> > > > >> > > >             sbHdr.append(header.getValue());
> > > > >> > > >         }
> > > > >> > > >         org.junit.Assert.assertEquals("test1=1; test2=2",
> > > > >> > > sbHdr.toString());
> > > > >> > > >     }
> > > > >> > > >     @Test
> > > > >> > > >     public void testParseCookies2() throws Exception {
> > > > >> > > >         final HttpResponse response = new
> > > > >> > > > BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> > > > >> > > >         response.addHeader(SM.SET_COOKIE, "test1=1;secure,
> > > > >> > > test2=2;secure");
> > > > >> > > >
> > > > >> > > >         final HttpClientContext context =
> > > > >> HttpClientContext.create();
> > > > >> > > >
>  context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> > > > >> > > > this.cookieOrigin);
> > > > >> > > >         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> > > > >> > > > this.cookieSpec);
> > > > >> > > >         context.setAttribute(HttpClientContext.COOKIE_STORE,
> > > > >> > > > this.cookieStore);
> > > > >> > > >
> > > > >> > > >         final HttpResponseInterceptor interceptor = new
> > > > >> > > > ResponseProcessCookies();
> > > > >> > > >         interceptor.process(response, context);
> > > > >> > > >
> > > > >> > > >         final List<Cookie> cookies =
> > > this.cookieStore.getCookies();
> > > > >> > > >         List<Header> lstHdr =
> cookieSpec.formatCookies(cookies);
> > > > >> > > >         StringBuilder sbHdr = new StringBuilder();
> > > > >> > > >         for (Header header : lstHdr) {
> > > > >> > > >             sbHdr.append(header.getValue());
> > > > >> > > >         }
> > > > >> > > >         org.junit.Assert.assertEquals("test1=1; test2=2",
> > > > >> > > sbHdr.toString());
> > > > >> > > >     }
> > > > >> > > >
> > > > >> > > > Thanks
> > > > >> > > >
> > > > >> > > > On Sun, Dec 13, 2015 at 10:09 PM, Philippe Mouawad <
> > > > >> > > > philippe.moua...@gmail.com> wrote:
> > > > >> > > >
> > > > >> > > > > Hi,
> > > > >> > > > > Created
> https://issues.apache.org/jira/browse/HTTPCLIENT-1705
> > > > >> with a
> > > > >> > > Test
> > > > >> > > > > case in it to show issue with Domain starting with ".".
> > > > >> > > > >
> > > > >> > > > >
> > > > >> > > > > Regards
> > > > >> > > > >
> > > > >> > > > > On Sun, Dec 13, 2015 at 9:50 PM, Philippe Mouawad <
> > > > >> > > > > philippe.moua...@gmail.com> wrote:
> > > > >> > > > >
> > > > >> > > > >> Hi Oleg,
> > > > >> > > > >> Created
> > > https://issues.apache.org/jira/browse/HTTPCLIENT-1705
> > > > >> to show
> > > > >> > > > >> issue with Cookie Header ordering.
> > > > >> > > > >>
> > > > >> > > > >> Regards
> > > > >> > > > >>
> > > > >> > > > >> On Sun, Dec 13, 2015 at 9:30 PM, Philippe Mouawad <
> > > > >> > > > >> philippe.moua...@gmail.com> wrote:
> > > > >> > > > >>
> > > > >> > > > >>> Hi,
> > > > >> > > > >>>  I created
> > > > >> https://issues.apache.org/jira/browse/HTTPCLIENT-1704
> > > > >> > > with
> > > > >> > > > >>> JUnit test case so that you understand the difference we
> > > have.
> > > > >> > > > >>>
> > > > >> > > > >>> Regards
> > > > >> > > > >>>
> > > > >> > > > >>> On Sat, Dec 5, 2015 at 1:26 PM, Oleg Kalnichevski <
> > > > >> ol...@apache.org>
> > > > >> > > > >>> wrote:
> > > > >> > > > >>>
> > > > >> > > > >>>> On Fri, 2015-12-04 at 21:43 +0100, Philippe Mouawad
> wrote:
> > > > >> > > > >>>> > Thanks Oleg.
> > > > >> > > > >>>> > But look at
> > > > >> > > > >>>> >
> > > > >> > > > >>>>
> > > > >> > >
> > > > >>
> > >
> https://github.com/ubikloadpack/jmeter/blob/HC4_5/test/src/org/apache/jmeter/protocol/http/control/TestCookieManager.java#L368
> > > > >> > > > >>>> ,
> > > > >> > > > >>>> > it concerns IGNORE_POLICY
> > > > >> > > > >>>> >
> > > > >> > > > >>>> > I really think there is at least one bug.
> > > > >> > > > >>>> > Regards
> > > > >> > > > >>>> >
> > > > >> > > > >>>>
> > > > >> > > > >>>> Sure thing. All these issues may well be due to bugs
> in HC.
> > > > >> Could
> > > > >> > > you
> > > > >> > > > >>>> please though reproduce them with unit tests that do
> not
> > > > >> involve
> > > > >> > > JMeter
> > > > >> > > > >>>> specific code?
> > > > >> > > > >>>>
> > > > >> > > > >>>> Oleg
> > > > >> > > > >>>>
> > > > >> > > > >>>>
> > > > >> > > > >>>> > On Wed, Dec 2, 2015 at 4:00 PM, Oleg Kalnichevski <
> > > > >> > > ol...@apache.org>
> > > > >> > > > >>>> wrote:
> > > > >> > > > >>>> >
> > > > >> > > > >>>> > > On Wed, 2015-12-02 at 15:51 +0100, Philippe Mouawad
> > > wrote:
> > > > >> > > > >>>> > > > Hi Oleg,
> > > > >> > > > >>>> > > > Thanks for answer.
> > > > >> > > > >>>> > > >
> > > > >> > > > >>>> > > > Find my answers inline.
> > > > >> > > > >>>> > > > Regards
> > > > >> > > > >>>> > > >
> > > > >> > > > >>>> > > > On Wed, Dec 2, 2015 at 3:36 PM, Oleg
> Kalnichevski <
> > > > >> > > > >>>> ol...@apache.org>
> > > > >> > > > >>>> > > wrote:
> > > > >> > > > >>>> > > >
> > > > >> > > > >>>> > > > > On Tue, 2015-12-01 at 22:09 +0100, Philippe
> Mouawad
> > > > >> wrote:
> > > > >> > > > >>>> > > > > > Hello,
> > > > >> > > > >>>> > > > > > Any answer on this question ?
> > > > >> > > > >>>> > > > > > Thanks
> > > > >> > > > >>>> > > > > > Regards
> > > > >> > > > >>>> > > > > >
> > > > >> > > > >>>> > > > > > On Sun, Nov 15, 2015 at 8:39 PM, Philippe
> > > Mouawad <
> > > > >> > > > >>>> > > > > > philippe.moua...@gmail.com> wrote:
> > > > >> > > > >>>> > > > > >
> > > > >> > > > >>>> > > > > > > Hello,
> > > > >> > > > >>>> > > > > > > We're in the process of migrating JMeter to
> > > last
> > > > >> > > HttpClient
> > > > >> > > > >>>> 4.5.1.
> > > > >> > > > >>>> > > > > > >
> > > > >> > > > >>>> > > > > > > We are now migrating the CookieManager to
> > > remove
> > > > >> all
> > > > >> > > > >>>> deprecated
> > > > >> > > > >>>> > > code.
> > > > >> > > > >>>> > > > > > > To test this class, we had a JUNIT class :
> > > > >> > > > >>>> > > > > > >
> > > > >> > > > >>>> > > > > > >
> > > > >> > > > >>>> > > > >
> > > > >> > > > >>>> > >
> > > > >> > > > >>>>
> > > > >> > >
> > > > >>
> > >
> https://github.com/ubikloadpack/jmeter/blob/HC4_5/test/src/org/apache/jmeter/protocol/http/control/TestCookieManager.java
> > > > >> > > > >>>> > > > > > >
> > > > >> > > > >>>> > > > > > > Before migration, it was still testing HC3
> > > version.
> > > > >> > > > >>>> > > > > > > So we first switched to HC4.23 and noticed
> some
> > > > >> > > failures:
> > > > >> > > > >>>> > > > > > >
> > > > >> > > > >>>> > > > >
> > > > >> > > > >>>> > > > > I am confused. Are you using HC 4.2.3 or HC
> 4.5.1?
> > > > >> > > > >>>> > > >
> > > > >> > > > >>>> > > >
> > > > >> > > > >>>> > > > As I wrote, first we switched our JUnit tests to
> use
> > > HC4
> > > > >> > > > >>>> Implementation
> > > > >> > > > >>>> > > of
> > > > >> > > > >>>> > > > CookieHandler and used 4.2.3, we got some
> failures
> > > > >> compared to
> > > > >> > > > >>>> HC3.
> > > > >> > > > >>>> > > >
> > > > >> > > > >>>> > > > Then we switched from HC 4.2.3 to HC 4.5.1 and
> got
> > > other
> > > > >> > > failures
> > > > >> > > > >>>> all
> > > > >> > > > >>>> > > > detailed in initial mail.
> > > > >> > > > >>>> > > >
> > > > >> > > > >>>> > > >
> > > > >> > > > >>>> > > > What policy does
> > > > >> > > > >>>> > > > > CookeManager use internally?
> > > > >> > > > >>>> > > > >
> > > > >> > > > >>>> > > > It depends on tests, you can see in the code that
> > > > >> depending on
> > > > >> > > > >>>> test
> > > > >> > > > >>>> > > method
> > > > >> > > > >>>> > > > we set different Policy to test them.
> > > > >> > > > >>>> > > >
> > > > >> > > > >>>> > >
> > > > >> > > > >>>> > > You ought to be using RFC6265 policy either in
> strict
> > > or
> > > > >> relaxed
> > > > >> > > > >>>> mode
> > > > >> > > > >>>> > > and nothing else. All other policies have been
> marked
> > > as
> > > > >> > > obsolete
> > > > >> > > > >>>> and
> > > > >> > > > >>>> > > have already been removed in 5.0 (trunk).
> > > > >> > > > >>>> > >
> > > > >> > > > >>>> > > Oleg
> > > > >> > > > >>>> > >
> > > > >> > > > >>>> > >
> > > > >> > > > >>>> > >
> > > > >> > > > >>>>
> > > > >> > >
> > > ---------------------------------------------------------------------
> > > > >> > > > >>>> > > To unsubscribe, e-mail:
> > > > >> > > httpclient-users-unsubscr...@hc.apache.org
> > > > >> > > > >>>> > > For additional commands, e-mail:
> > > > >> > > > >>>> httpclient-users-h...@hc.apache.org
> > > > >> > > > >>>> > >
> > > > >> > > > >>>> > >
> > > > >> > > > >>>> >
> > > > >> > > > >>>> >
> > > > >> > > > >>>>
> > > > >> > > > >>>>
> > > > >> > > > >>>>
> > > > >> > > > >>>>
> > > > >> > >
> > > ---------------------------------------------------------------------
> > > > >> > > > >>>> To unsubscribe, e-mail:
> > > > >> httpclient-users-unsubscr...@hc.apache.org
> > > > >> > > > >>>> For additional commands, e-mail:
> > > > >> > > httpclient-users-h...@hc.apache.org
> > > > >> > > > >>>>
> > > > >> > > > >>>>
> > > > >> > > > >>>
> > > > >> > > > >>>
> > > > >> > > > >>> --
> > > > >> > > > >>> Cordialement.
> > > > >> > > > >>> Philippe Mouawad.
> > > > >> > > > >>>
> > > > >> > > > >>>
> > > > >> > > > >>>
> > > > >> > > > >>
> > > > >> > > > >>
> > > > >> > > > >> --
> > > > >> > > > >> Cordialement.
> > > > >> > > > >> Philippe Mouawad.
> > > > >> > > > >>
> > > > >> > > > >>
> > > > >> > > > >>
> > > > >> > > > >
> > > > >> > > > >
> > > > >> > > > > --
> > > > >> > > > > Cordialement.
> > > > >> > > > > Philippe Mouawad.
> > > > >> > > > >
> > > > >> > > > >
> > > > >> > > > >
> > > > >> > > >
> > > > >> > > >
> > > > >> > >
> > > > >> > >
> > > > >> > >
> > > > >> >
> > > > >> >
> > > > >>
> > > > >>
> > > > >>
> > > > >
> > > > >
> > > > > --
> > > > > Cordialement.
> > > > > Philippe Mouawad.
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > >
> >
> >
>
>
>


-- 
Cordialement.
Philippe Mouawad.

Reply via email to