Repository: jclouds Updated Branches: refs/heads/2.0.x f7cad22d9 -> acb84bc5e
JCLOUDS-1299: Handle % in names during Swift list uriBuilder.appendPath assumes an encoded path. Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/acb84bc5 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/acb84bc5 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/acb84bc5 Branch: refs/heads/2.0.x Commit: acb84bc5e13a71b7751bf5d7d9a1dfab1ad7d9f5 Parents: f7cad22 Author: Andrew Gaul <[email protected]> Authored: Tue May 16 14:39:46 2017 -0700 Committer: Andrew Gaul <[email protected]> Committed: Wed May 17 10:38:10 2017 -0700 ---------------------------------------------------------------------- .../openstack/swift/v1/functions/ParseObjectListFromResponse.java | 3 ++- .../integration/internal/BaseContainerIntegrationTest.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/acb84bc5/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectListFromResponse.java ---------------------------------------------------------------------- diff --git a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectListFromResponse.java b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectListFromResponse.java index 09d2893..a31fe85 100644 --- a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectListFromResponse.java +++ b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/functions/ParseObjectListFromResponse.java @@ -18,6 +18,7 @@ package org.jclouds.openstack.swift.v1.functions; import static com.google.common.io.BaseEncoding.base16; import static org.jclouds.http.Uris.uriBuilder; +import static org.jclouds.util.Strings2.urlEncode; import java.util.Date; import java.util.List; @@ -96,7 +97,7 @@ public class ParseObjectListFromResponse implements Function<HttpResponse, Objec String etag = Strings.nullToEmpty(input.hash); Date lastModified = input.last_modified == null ? new Date() : input.last_modified; return SwiftObject.builder() - .uri(uriBuilder(containerUri).clearQuery().appendPath(input.name).build()) + .uri(uriBuilder(containerUri).clearQuery().appendPath(urlEncode(input.name)).build()) .name(name) .etag(etag) .payload(payload(input.bytes, etag, input.content_type, input.expires)) http://git-wip-us.apache.org/repos/asf/jclouds/blob/acb84bc5/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java ---------------------------------------------------------------------- diff --git a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java index 735784a..e2cc632 100644 --- a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java +++ b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java @@ -597,7 +597,7 @@ public class BaseContainerIntegrationTest extends BaseBlobStoreIntegrationTest { @DataProvider public Object[][] getBlobsToEscape() { - ImmutableSet<String> testNames = ImmutableSet.of("%20", "%20 ", " %20", " "); + ImmutableSet<String> testNames = ImmutableSet.of("%20", "%20 ", " %20", " ", "%", "%%"); Object[][] result = new Object[1][1]; result[0][0] = testNames; return result;
