You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2015/06/13 18:30:56 UTC

svn commit: r1685284 - in /httpcomponents/httpclient/trunk/httpclient/src: main/java/org/apache/http/client/methods/RequestBuilder.java test/java/org/apache/http/client/methods/TestRequestBuilder.java

Author: olegk
Date: Sat Jun 13 16:30:56 2015
New Revision: 1685284

URL: http://svn.apache.org/r1685284
Log:
HTTPCLIENT-1658: fixed regression in RequestBuilder#copy

Modified:
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java
    httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/client/methods/TestRequestBuilder.java

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java?rev=1685284&r1=1685283&r2=1685284&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java Sat Jun 13 16:30:56 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<NameValuePair> 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/trunk/httpclient/src/test/java/org/apache/http/client/methods/TestRequestBuilder.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/client/methods/TestRequestBuilder.java?rev=1685284&r1=1685283&r2=1685284&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/client/methods/TestRequestBuilder.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/client/methods/TestRequestBuilder.java Sat Jun 13 16:30:56 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<NameValuePair> 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<NameValuePair> 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();