Repository: jclouds Updated Branches: refs/heads/master cf6723376 -> 88f44a6d8
JCLOUDS-1443: fix(rest/processor): check if `/` is ending a default endpoint Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/bcc6a264 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/bcc6a264 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/bcc6a264 Branch: refs/heads/master Commit: bcc6a2648834335d711cee7cb219e4ad7552979b Parents: cf67233 Author: Mathieu Tortuyaux <[email protected]> Authored: Mon Aug 20 14:55:47 2018 -0400 Committer: Ignasi Barrera <[email protected]> Committed: Thu Aug 23 20:24:38 2018 +0200 ---------------------------------------------------------------------- .../org/jclouds/rest/internal/RestAnnotationProcessor.java | 4 +++- .../jclouds/rest/internal/RestAnnotationProcessorTest.java | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/bcc6a264/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java b/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java index 8fdbb43..352e032 100644 --- a/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java +++ b/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java @@ -573,7 +573,9 @@ public class RestAnnotationProcessor implements Function<Invocation, HttpRequest return null; if (original.getHost() != null) return original; - return withHost.resolve(original); + String host = withHost.toString(); + URI baseURI = host.endsWith("/") ? withHost : URI.create(host + "/"); + return baseURI.resolve(original); } private org.jclouds.rest.MapBinder getMapPayloadBinderOrNull(Invocation invocation) { http://git-wip-us.apache.org/repos/asf/jclouds/blob/bcc6a264/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java b/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java index 73355ad..e2d7eb2 100644 --- a/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java +++ b/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java @@ -2679,6 +2679,13 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest { assertEquals(new URI("http://foo/bar"), result); } + @Test + public void testComplexHost() throws Exception { + URI result = RestAnnotationProcessor.addHostIfMissing(new URI("bar"), new URI("http://foo/foobar")); + assertEquals(new URI("http://foo/foobar/bar"), result); + } + + DateService dateService = new SimpleDateFormatDateService(); RestAnnotationProcessor processor; TransformerForRequest transformer;
