Repository: jclouds
Updated Branches:
  refs/heads/master 4829bbbd2 -> e0c959c21


Pagination for listing LocalBlobStore MPU parts


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/e0c959c2
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/e0c959c2
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/e0c959c2

Branch: refs/heads/master
Commit: e0c959c212c4a9715ea6ef478f384f3e520a9cb3
Parents: 4829bbb
Author: Andrew Gaul <[email protected]>
Authored: Tue Oct 20 14:01:32 2015 -0700
Committer: Andrew Gaul <[email protected]>
Committed: Tue Oct 20 14:01:32 2015 -0700

----------------------------------------------------------------------
 .../blobstore/config/LocalBlobStore.java        | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/e0c959c2/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
----------------------------------------------------------------------
diff --git 
a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java 
b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
index 1f0cca5..9c65be7 100644
--- a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
+++ b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
@@ -829,13 +829,19 @@ public final class LocalBlobStore implements BlobStore {
    @Override
    public List<MultipartPart> listMultipartUpload(MultipartUpload mpu) {
       ImmutableList.Builder<MultipartPart> parts = ImmutableList.builder();
-      PageSet<? extends StorageMetadata> pageSet = list(mpu.containerName(),
-            new ListContainerOptions().prefix(mpu.blobName() + 
"-").recursive());
-      // TODO: pagination
-      for (StorageMetadata sm : pageSet) {
-         int partNumber = 
Integer.parseInt(sm.getName().substring((mpu.blobName() + "-").length()));
-         long partSize = -1;  // TODO: could call getContentMetadata but did 
not above
-         parts.add(MultipartPart.create(partNumber, partSize, sm.getETag()));
+      ListContainerOptions options =
+            new ListContainerOptions().prefix(mpu.blobName() + 
"-").recursive();
+      while (true) {
+         PageSet<? extends StorageMetadata> pageSet = 
list(mpu.containerName(), options);
+         for (StorageMetadata sm : pageSet) {
+            int partNumber = 
Integer.parseInt(sm.getName().substring((mpu.blobName() + "-").length()));
+            long partSize = -1;  // TODO: could call getContentMetadata but 
did not above
+            parts.add(MultipartPart.create(partNumber, partSize, 
sm.getETag()));
+         }
+         if (pageSet.isEmpty() || pageSet.getNextMarker() == null) {
+            break;
+         }
+         options.afterMarker(pageSet.getNextMarker());
       }
       return parts.build();
    }

Reply via email to