diff --git a/src/main/java/com/amazonaws/services/kinesis/clientlibrary/proxies/KinesisProxy.java b/src/main/java/com/amazonaws/services/kinesis/clientlibrary/proxies/KinesisProxy.java index 1e6fb1df..b60fc938 100644 --- a/src/main/java/com/amazonaws/services/kinesis/clientlibrary/proxies/KinesisProxy.java +++ b/src/main/java/com/amazonaws/services/kinesis/clientlibrary/proxies/KinesisProxy.java @@ -252,9 +252,10 @@ public class KinesisProxy implements IKinesisProxyExtended { shardIterationState.update(response.getStreamDescription().getShards()); } } while (response.getStreamDescription().isHasMoreShards()); - this.listOfShardsSinceLastGet.set(shardIterationState.getCollected()); + this.listOfShardsSinceLastGet.set(shardIterationState.getShards()); - return shardIterationState.getAndReset(); + shardIterationState = new ShardIterationState(); + return listOfShardsSinceLastGet.get(); } /** @@ -359,30 +360,23 @@ public class KinesisProxy implements IKinesisProxyExtended { @Data static class ShardIterationState { - private List collected; + private List shards; private String lastShardId; public ShardIterationState() { - collected = new ArrayList<>(); + shards = new ArrayList<>(); } public void update(List shards) { if (shards == null || shards.isEmpty()) { return; } - collected.addAll(shards); + this.shards.addAll(shards); Shard lastShard = shards.get(shards.size() - 1); if (lastShardId == null || lastShardId.compareTo(lastShard.getShardId()) < 0) { lastShardId = lastShard.getShardId(); } } - - public List getAndReset() { - List result = collected; - collected = new ArrayList<>(); - lastShardId = null; - return result; - } } }