diff --git a/utils/src/com/cloud/utils/S3Utils.java b/utils/src/com/cloud/utils/S3Utils.java index fc8a3cc17c92..e8653a609af5 100644 --- a/utils/src/com/cloud/utils/S3Utils.java +++ b/utils/src/com/cloud/utils/S3Utils.java @@ -352,10 +352,15 @@ private static List listDirectory(final String bucketName, fina ListObjectsRequest listObjectsRequest = new ListObjectsRequest().withBucketName(bucketName).withPrefix(directory + SEPARATOR); ObjectListing ol = client.listObjects(listObjectsRequest); - while (ol != null && ol.isTruncated()) { + if(ol.isTruncated()) { + do { + objects.addAll(ol.getObjectSummaries()); + listObjectsRequest.setMarker(ol.getNextMarker()); + ol = client.listObjects(listObjectsRequest); + } while (ol.isTruncated()); + } + else { objects.addAll(ol.getObjectSummaries()); - listObjectsRequest.setMarker(ol.getNextMarker()); - ol = client.listObjects(listObjectsRequest); } if (objects.isEmpty()) {