jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Mouawad <philippe.moua...@gmail.com>
Subject Re: Progressive Migration from HttpClient 4.2.3 to 4.5
Date Mon, 19 Oct 2015 21:04:23 GMT
Hi,
For info, tests failure can be fixed this way (fix contributed by
redline13):
-
https://github.com/redline13/jmeter/commit/6fbf9933aff1a2cca29e7ecc6c8b08e102514ce7#diff-4e3471b25c91730a99ed23402467b9eaR996


The fix

if(haveContentEncoding) { charset = Charset.forName(contentEncoding); charset
= Charset.forName(contentEncoding);   } else {   charset = Charset.forName("
US-ASCII"); // $NON-NLS-1$ this is the default used by HttpClient } }

 looks good to me as :
In 4.2.6, if charset was null, StringBody would default to US_ASCII:
https://github.com/apache/httpclient/blob/4.2.6/httpmime/src/main/java/org/apache/http/entity/mime/content/StringBody.java

Same for  HttpMultipart
https://github.com/apache/httpclient/blob/4.2.6/httpmime/src/main/java/org/apache/http/entity/mime/HttpMultipart.java#L122

Called from :
https://github.com/apache/httpclient/blob/4.2.6/httpmime/src/main/java/org/apache/http/entity/mime/MultipartEntity.java


So shall we fix it this way ?
It would allow migration to HttpClient 4.5 , fix this issue and also allow
users of JMeter-Plugins + Webdriver to work correctly.
Thanks
Regards
Philippe M.
@philmdot

On Sat, Jul 4, 2015 at 11:19 PM, Philippe Mouawad <
philippe.mouawad@gmail.com> wrote:

> The 2 issues seem to be due to a bug in httpmime-4.5:
> - https://issues.apache.org/jira/browse/HTTPCLIENT-1665
>
> Regards
> Philippe
>
> On Sat, Jul 4, 2015 at 8:46 PM, Milamber <milamber@apache.org> wrote:
>
>> Hello,
>>
>> The HC4 branch on svn seems have been create to make the upgrade to the
>> latest release of httpclient/core.
>> I've just merge this branch with the trunk, and updating httpclient/core
>> to 4.5/4.4.1.
>>
>> -> compile works, but some tests (junit) fails (charset issue I think)
>>
>> Perhaps, we need to fix (or change) the junit tests on the HC4 branch?
>> and start remove/rework the classes using some deprecated elements from
>> httpclient/core.
>>
>> Make the upgrade of httpclient/core directly on trunk seems a bit risky
>> in words of regression.
>>
>> Milamber
>>
>> ===Errors on tests ant task===
>>
>>      [java] Time: 72.39
>>      [java] There were 2 failures:
>>      [java] 1)
>> testPostRequest_FormMultipart3(org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer)junit.framework.AssertionFailedError:
>> arrays have different length, expected is 402, actual is 366
>>      [java]     at
>> org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer.checkArraysHaveSameContent(TestHTTPSamplersAgainstHttpMirrorServer.java:1240)
>>      [java]     at
>> org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer.checkPostRequestFormMultipart(TestHTTPSamplersAgainstHttpMirrorServer.java:831)
>>      [java]     at
>> org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer.testPostRequest_FormMultipart(TestHTTPSamplersAgainstHttpMirrorServer.java:342)
>>      [java]     at
>> org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer.testPostRequest_FormMultipart3(TestHTTPSamplersAgainstHttpMirrorServer.java:153)
>>      [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>>      [java]     at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>      [java]     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>      [java]     at
>> junit.extensions.TestDecorator.basicRun(TestDecorator.java:23)
>>      [java]     at junit.extensions.TestSetup$1.protect(TestSetup.java:23)
>>      [java]     at junit.extensions.TestSetup.run(TestSetup.java:27)
>>      [java]     at
>> org.apache.jorphan.test.AllTests.main(AllTests.java:236)
>>      [java] 2)
>> testPostRequest_FileUpload3(org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer)junit.framework.AssertionFailedError:
>> arrays have different length, expected is 677, actual is 641
>>      [java]     at
>> org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer.checkArraysHaveSameContent(TestHTTPSamplersAgainstHttpMirrorServer.java:1240)
>>      [java]     at
>> org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer.checkPostRequestFileUpload(TestHTTPSamplersAgainstHttpMirrorServer.java:893)
>>      [java]     at
>> org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer.testPostRequest_FileUpload(TestHTTPSamplersAgainstHttpMirrorServer.java:441)
>>      [java]     at
>> org.apache.jmeter.protocol.http.sampler.TestHTTPSamplersAgainstHttpMirrorServer.testPostRequest_FileUpload3(TestHTTPSamplersAgainstHttpMirrorServer.java:165)
>>      [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>>      [java]     at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>      [java]     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>      [java]     at
>> junit.extensions.TestDecorator.basicRun(TestDecorator.java:23)
>>      [java]     at junit.extensions.TestSetup$1.protect(TestSetup.java:23)
>>      [java]     at junit.extensions.TestSetup.run(TestSetup.java:27)
>>      [java]     at
>> org.apache.jorphan.test.AllTests.main(AllTests.java:236)
>>      [java] FAILURES!!!
>>      [java] Tests run: 2536,  Failures: 2,  Errors: 0
>>
>>
>> On 04/07/2015 17:42, Andrey Pokhilko wrote:
>>
>>> Hi,
>>>
>>> >From what I observed, there is no major issues with just replacing
>>> httpclient libs with 4.5 version. The only problem I saw was that
>>> deprecated constructor regression. A fix for that regression was
>>> submitted and released as part of 4.5. So I'm very optimistic with
>>> upgrading http components.
>>>
>>> Andrey Pokhilko
>>>
>>> On 07/04/2015 05:35 PM, Philippe Mouawad wrote:
>>>
>>>> Hello,
>>>> HttpClient 4.3 introduced a new set of APIs which makes migration from
>>>> 4.2.3 to 4.5 an important work.
>>>>
>>>> What are the risks and what do you think about the approach of
>>>> progressive
>>>> migration:
>>>>
>>>>     - We upgrade to  4.5 HttpClient/Mime and 4.4.1 (HttpCore) jars which
>>>>     show many deprecations but not broken compilation
>>>>     - Once done, we move progressively (not always possible) to 4.5 the
>>>> code
>>>>
>>>> If this is feasible then it would allow us to fix :
>>>>
>>>>     - https://bz.apache.org/bugzilla/show_bug.cgi?id=57935
>>>>
>>>>
>>>> Any trace of a migration documentation from 4.2.X to 4.3. ?
>>>>
>>>>
>>>
>>
>
>
> --
> Cordialement.
> Philippe Mouawad.
>
>
>


-- 
Cordialement.
Philippe Mouawad.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message