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;

Reply via email to