Use sorted set to order relative paths correctly
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/c770ffbe Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/c770ffbe Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/c770ffbe Branch: refs/heads/master Commit: c770ffbeb06dbe287017cc647fd779c1304f2847 Parents: da3e746 Author: Andrew Gaul <[email protected]> Authored: Tue Jan 20 14:04:41 2015 -0800 Committer: Andrew Gaul <[email protected]> Committed: Thu Jan 22 11:37:46 2015 -0800 ---------------------------------------------------------------------- .../jclouds/s3/blobstore/functions/BucketToResourceList.java | 5 +++-- .../blobstore/functions/ListBlobsResponseToResourceList.java | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/c770ffbe/apis/s3/src/main/java/org/jclouds/s3/blobstore/functions/BucketToResourceList.java ---------------------------------------------------------------------- diff --git a/apis/s3/src/main/java/org/jclouds/s3/blobstore/functions/BucketToResourceList.java b/apis/s3/src/main/java/org/jclouds/s3/blobstore/functions/BucketToResourceList.java index e417ce5..9d40322 100644 --- a/apis/s3/src/main/java/org/jclouds/s3/blobstore/functions/BucketToResourceList.java +++ b/apis/s3/src/main/java/org/jclouds/s3/blobstore/functions/BucketToResourceList.java @@ -17,7 +17,7 @@ package org.jclouds.s3.blobstore.functions; import java.util.Map; -import java.util.Set; +import java.util.SortedSet; import javax.inject.Inject; import javax.inject.Singleton; @@ -54,7 +54,8 @@ public class BucketToResourceList implements } public PageSet<? extends StorageMetadata> apply(ListBucketResponse from) { - Set<StorageMetadata> contents = Sets.<StorageMetadata> newHashSet(Iterables.transform(from, + // S3 lists keys in sorted order; use sorted set to order relative paths correctly + SortedSet<StorageMetadata> contents = Sets.<StorageMetadata> newTreeSet(Iterables.transform(from, object2blobMd)); Map<String, StorageMetadata> nameToMd = Maps.uniqueIndex(contents, indexer); http://git-wip-us.apache.org/repos/asf/jclouds/blob/c770ffbe/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/functions/ListBlobsResponseToResourceList.java ---------------------------------------------------------------------- diff --git a/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/functions/ListBlobsResponseToResourceList.java b/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/functions/ListBlobsResponseToResourceList.java index 15feece..6b451dd 100644 --- a/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/functions/ListBlobsResponseToResourceList.java +++ b/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/functions/ListBlobsResponseToResourceList.java @@ -17,7 +17,7 @@ package org.jclouds.azureblob.blobstore.functions; import java.util.Map; -import java.util.Set; +import java.util.SortedSet; import javax.inject.Inject; import javax.inject.Singleton; @@ -55,7 +55,8 @@ public class ListBlobsResponseToResourceList implements } public PageSet<? extends StorageMetadata> apply(ListBlobsResponse from) { - Set<StorageMetadata> contents = Sets.<StorageMetadata> newHashSet(Iterables.transform(from, + // use sorted set to order relative paths correctly + SortedSet<StorageMetadata> contents = Sets.<StorageMetadata> newTreeSet(Iterables.transform(from, object2blobMd)); Map<String, StorageMetadata> nameToMd = Maps.uniqueIndex(contents, indexer);
