diff --git a/java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/session/SessionCreationBudget.java b/java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/session/SessionCreationBudget.java index bfa8dd2213a9..8119eaf13af9 100644 --- a/java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/session/SessionCreationBudget.java +++ b/java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/session/SessionCreationBudget.java @@ -22,6 +22,7 @@ import java.time.Duration; import java.time.Instant; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.logging.Level; @@ -63,7 +64,7 @@ Instant getNextAvailableBudget() { return Instant.now(); } - return delayedCreationTokens.get(0); + return Collections.min(delayedCreationTokens); } boolean tryReserveSession() { @@ -96,10 +97,6 @@ private void drainCreationFailures() { if (iter.next().isBefore(now)) { concurrentRequests--; iter.remove(); - } else { - // The list should be roughly sorted. Exit early when we encounter - // something expires later. - break; } } }