diff --git a/src/server/src/main/java/io/cassandrareaper/storage/CassandraStorage.java b/src/server/src/main/java/io/cassandrareaper/storage/CassandraStorage.java index 17a7b71b2..810771361 100644 --- a/src/server/src/main/java/io/cassandrareaper/storage/CassandraStorage.java +++ b/src/server/src/main/java/io/cassandrareaper/storage/CassandraStorage.java @@ -114,6 +114,8 @@ import systems.composable.dropwizard.cassandra.pooling.PoolingOptionsFactory; import systems.composable.dropwizard.cassandra.retry.RetryPolicyFactory; +import static java.lang.Math.min; + public final class CassandraStorage implements IStorage, IDistributedStorage { private static final int METRICS_PARTITIONING_TIME_MINS = 10; @@ -985,7 +987,7 @@ public List getRepairRunsForClusterPrioritiseRunning(String clusterNa row -> flattenedUuids.add(row.getUUID("id")) ); } - flattenedUuids.subList(0, limit.orElse(MAX_RETURNED_REPAIR_RUNS)); + flattenedUuids.subList(0, min(flattenedUuids.size(), limit.orElse(MAX_RETURNED_REPAIR_RUNS))+1); // Run an async query on each UUID in the flattened list, against the main repair_run table with // all columns required as an input to `buildRepairRunFromRow`. List repairRunFutures = Lists.newArrayList(); diff --git a/src/server/src/main/java/io/cassandrareaper/storage/MemoryStorage.java b/src/server/src/main/java/io/cassandrareaper/storage/MemoryStorage.java index c664f8ba2..81ad43f4e 100644 --- a/src/server/src/main/java/io/cassandrareaper/storage/MemoryStorage.java +++ b/src/server/src/main/java/io/cassandrareaper/storage/MemoryStorage.java @@ -54,6 +54,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static java.lang.Math.min; + /** * Implements the StorageAPI using transient Java classes. */ @@ -209,7 +211,7 @@ public int compare(RepairRun o1, RepairRun o2) { } }; Collections.sort(foundRepairRuns, comparator); - return foundRepairRuns.subList(0, limit.orElse(1000)); + return foundRepairRuns.subList(0, min(foundRepairRuns.size(), limit.orElse(1000))+1); } @Override