hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oleg Kalnichevski (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (HTTPCLIENT-1658) Possible incorrect interaction in RequestBuilder.copy(...) and setURI(...)
Date Sat, 13 Jun 2015 16:33:01 GMT

     [ https://issues.apache.org/jira/browse/HTTPCLIENT-1658?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Oleg Kalnichevski resolved HTTPCLIENT-1658.
-------------------------------------------
       Resolution: Fixed
    Fix Version/s: 4.5.1

Fixed in SVN trunk and 4.5.x branch. Please re-test.

Oleg

> Possible incorrect interaction in RequestBuilder.copy(...) and setURI(...)
> --------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-1658
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1658
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpClient
>    Affects Versions: 4.4 Final, 4.4.1, 4.5
>            Reporter: Kevin Fongson
>            Priority: Minor
>              Labels: regression
>             Fix For: 4.5.1
>
>
> I recently upgraded my httpclient from 4.3.5 to 4.5 and noticed a difference in behavior
in RequestBuilder. 
> {code:title=Example.java|borderStyle=solid}
>     @Test
>     public void testUrlParams() {
>         URI uri1 = URI.create("http://host1.com/path?param=something");
>         URI uri2 = URI.create("http://host2.com/path?param=somethingdifferent");
>         HttpRequest getRequest = new HttpGet(uri1);
>         HttpUriRequest uriRequest = RequestBuilder.copy(getRequest).setUri(uri2).build();
>         Assert.assertEquals(uriRequest.getURI(), uri2);
>     }
>     // Output:
>     // java.lang.AssertionError: expected [http://host2.com/path?param=somethingdifferent]
but found [http://host2.com/path?param=somethingdifferent&param=something]
> {code}
> I had expected the setUri(...) to completely overwrite the URI of the copied request,
but the URL parameters from the copied request were also appended to the resulting request
URI. This is different than how it behaves in 4.3.5. 
> Looking at version 4.5 of RequestBuilder, the reason why this happens is that the parameters
are extracted from the URI in line 305. They are then set on line 488 when the resulting request
is built, regardless of whether the set URI already has parameters.
> Is this working as intended?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message