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);

Reply via email to