diff --git a/okhttp-tests/src/test/java/com/squareup/okhttp/RequestTest.java b/okhttp-tests/src/test/java/com/squareup/okhttp/RequestTest.java index 8a74d1b6e..bc26994e8 100644 --- a/okhttp-tests/src/test/java/com/squareup/okhttp/RequestTest.java +++ b/okhttp-tests/src/test/java/com/squareup/okhttp/RequestTest.java @@ -114,6 +114,18 @@ public final class RequestTest { assertEquals(new URL("http://localhost/api"), request.url()); } + @Test public void newBuilderUrlResetsUrl() throws Exception { + Request requestWithoutCache = new Request.Builder().url("http://localhost/api").build(); + Request builtRequestWithoutCache = requestWithoutCache.newBuilder().url("http://localhost/api/foo").build(); + assertEquals(new URL("http://localhost/api/foo"), builtRequestWithoutCache.url()); + + Request requestWithCache = new Request.Builder().url("http://localhost/api").build(); + // cache url object + requestWithCache.url(); + Request builtRequestWithCache = requestWithCache.newBuilder().url("http://localhost/api/foo").build(); + assertEquals(new URL("http://localhost/api/foo"), builtRequestWithCache.url()); + } + @Test public void cacheControl() throws Exception { Request request = new Request.Builder() .cacheControl(new CacheControl.Builder().noCache().build()) diff --git a/okhttp/src/main/java/com/squareup/okhttp/Request.java b/okhttp/src/main/java/com/squareup/okhttp/Request.java index c40ada31a..098ee9b91 100644 --- a/okhttp/src/main/java/com/squareup/okhttp/Request.java +++ b/okhttp/src/main/java/com/squareup/okhttp/Request.java @@ -146,7 +146,8 @@ public final class Request { public Builder url(String url) { if (url == null) throw new IllegalArgumentException("url == null"); - urlString = url; + this.urlString = url; + this.url = null; return this; }