diff --git a/src/main/java/org/springframework/integration/aws/support/S3Session.java b/src/main/java/org/springframework/integration/aws/support/S3Session.java index 87a8ad5..95f28e3 100644 --- a/src/main/java/org/springframework/integration/aws/support/S3Session.java +++ b/src/main/java/org/springframework/integration/aws/support/S3Session.java @@ -48,6 +48,7 @@ import org.springframework.util.StringUtils; * @author Jim Krygowski * @author Anwar Chirakkattil * @author Xavier François + * @author Rogerio Lino */ public class S3Session implements Session { @@ -82,8 +83,11 @@ public class S3Session implements Session { List objectSummaries = new ArrayList<>(); do { objectListing = this.amazonS3.listObjects(listObjectsRequest.build()); - objectSummaries.addAll(objectListing.contents()); - listObjectsRequest.marker(objectListing.nextMarker()); + List contents = objectListing.contents(); + objectSummaries.addAll(contents); + if (objectListing.isTruncated()) { + listObjectsRequest.marker(contents.get(contents.size() - 1).key()); + } } while (objectListing.isTruncated()); @@ -108,10 +112,13 @@ public class S3Session implements Session { List names = new ArrayList<>(); do { objectListing = this.amazonS3.listObjects(listObjectsRequest.build()); - for (S3Object objectSummary : objectListing.contents()) { + List contents = objectListing.contents(); + for (S3Object objectSummary : contents) { names.add(objectSummary.key()); } - listObjectsRequest.marker(objectListing.nextMarker()); + if (objectListing.isTruncated()) { + listObjectsRequest.marker(contents.get(contents.size() - 1).key()); + } } while (objectListing.isTruncated());