Return-Path: X-Original-To: apmail-hc-commits-archive@www.apache.org Delivered-To: apmail-hc-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3CE4F179A7 for ; Sat, 13 Jun 2015 16:31:16 +0000 (UTC) Received: (qmail 46309 invoked by uid 500); 13 Jun 2015 16:31:16 -0000 Delivered-To: apmail-hc-commits-archive@hc.apache.org Received: (qmail 46269 invoked by uid 500); 13 Jun 2015 16:31:16 -0000 Mailing-List: contact commits-help@hc.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "HttpComponents Project" Delivered-To: mailing list commits@hc.apache.org Received: (qmail 46260 invoked by uid 99); 13 Jun 2015 16:31:15 -0000 Received: from eris.apache.org (HELO hades.apache.org) (140.211.11.105) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 13 Jun 2015 16:31:15 +0000 Received: from hades.apache.org (localhost [127.0.0.1]) by hades.apache.org (ASF Mail Server at hades.apache.org) with ESMTP id D53CCAC0373 for ; Sat, 13 Jun 2015 16:31:15 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1685285 - in /httpcomponents/httpclient/branches/4.5.x/httpclient/src: main/java/org/apache/http/client/methods/RequestBuilder.java test/java/org/apache/http/client/methods/TestRequestBuilder.java Date: Sat, 13 Jun 2015 16:31:15 -0000 To: commits@hc.apache.org From: olegk@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20150613163115.D53CCAC0373@hades.apache.org> Author: olegk Date: Sat Jun 13 16:31:15 2015 New Revision: 1685285 URL: http://svn.apache.org/r1685285 Log: HTTPCLIENT-1658: fixed regression in RequestBuilder#copy Modified: httpcomponents/httpclient/branches/4.5.x/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java httpcomponents/httpclient/branches/4.5.x/httpclient/src/test/java/org/apache/http/client/methods/TestRequestBuilder.java Modified: httpcomponents/httpclient/branches/4.5.x/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.5.x/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java?rev=1685285&r1=1685284&r2=1685285&view=diff ============================================================================== --- httpcomponents/httpclient/branches/4.5.x/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java (original) +++ httpcomponents/httpclient/branches/4.5.x/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java Sat Jun 13 16:31:15 2015 @@ -293,26 +293,9 @@ public class RequestBuilder { final URI originalUri; if (request instanceof HttpUriRequest) { - originalUri = ((HttpUriRequest) request).getURI(); + uri = ((HttpUriRequest) request).getURI(); } else { - originalUri = URI.create(request.getRequestLine().getUri()); - } - - final URIBuilder uriBuilder = new URIBuilder(originalUri); - if (parameters == null) { - final List queryParams = uriBuilder.getQueryParams(); - if (!queryParams.isEmpty()) { - parameters = queryParams; - uriBuilder.clearParameters(); - } else { - parameters = null; - } - } - try { - uri = uriBuilder.build(); - } catch (URISyntaxException ex) { - // Should never happen - uri = originalUri; + uri = URI.create(request.getRequestLine().getUri()); } if (request instanceof Configurable) { Modified: httpcomponents/httpclient/branches/4.5.x/httpclient/src/test/java/org/apache/http/client/methods/TestRequestBuilder.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.5.x/httpclient/src/test/java/org/apache/http/client/methods/TestRequestBuilder.java?rev=1685285&r1=1685284&r2=1685285&view=diff ============================================================================== --- httpcomponents/httpclient/branches/4.5.x/httpclient/src/test/java/org/apache/http/client/methods/TestRequestBuilder.java (original) +++ httpcomponents/httpclient/branches/4.5.x/httpclient/src/test/java/org/apache/http/client/methods/TestRequestBuilder.java Sat Jun 13 16:31:15 2015 @@ -33,6 +33,7 @@ import java.util.List; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpEntityEnclosingRequest; +import org.apache.http.HttpRequest; import org.apache.http.HttpVersion; import org.apache.http.NameValuePair; import org.apache.http.client.config.RequestConfig; @@ -168,10 +169,8 @@ public class TestRequestBuilder { final RequestBuilder builder = RequestBuilder.copy(get); final List parameters = builder.getParameters(); Assert.assertNotNull(parameters); - Assert.assertEquals(2, parameters.size()); - Assert.assertEquals(new BasicNameValuePair("p1", "this"), parameters.get(0)); - Assert.assertEquals(new BasicNameValuePair("p2", "that"), parameters.get(1)); - Assert.assertEquals(new URI("/stuff"), builder.getUri()); + Assert.assertEquals(0, parameters.size()); + Assert.assertEquals(new URI("/stuff?p1=this&p2=that"), builder.getUri()); } @Test @@ -196,13 +195,21 @@ public class TestRequestBuilder { final RequestBuilder builder = RequestBuilder.copy(post); final List parameters = builder.getParameters(); Assert.assertNotNull(parameters); - Assert.assertEquals(1, parameters.size()); - Assert.assertEquals(new BasicNameValuePair("p1", "wtf"), parameters.get(0)); - Assert.assertEquals(new URI("/stuff"), builder.getUri()); + Assert.assertEquals(0, parameters.size()); + Assert.assertEquals(new URI("/stuff?p1=wtf"), builder.getUri()); Assert.assertSame(entity, builder.getEntity()); } @Test + public void testCopyAndSetUri() throws Exception { + final URI uri1 = URI.create("http://host1.com/path?param=something"); + final URI uri2 = URI.create("http://host2.com/path?param=somethingdifferent"); + final HttpRequest request1 = new HttpGet(uri1); + final HttpUriRequest request2 = RequestBuilder.copy(request1).setUri(uri2).build(); + Assert.assertEquals(request2.getURI(), uri2); + } + + @Test public void testGettersAndMutators() throws Exception { final HttpEntity entity = new StringEntity("stuff"); final RequestConfig config = RequestConfig.custom().build();