diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java index fb202d6a7cc..55c65983cca 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java @@ -36,6 +36,7 @@ import java.util.Optional; import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.function.BiConsumer; @@ -2931,7 +2932,7 @@ class RawAsyncHBaseAdmin implements AsyncAdmin { future.completeExceptionally(err); return; } - List regionStates = new ArrayList<>(); + ConcurrentLinkedQueue regionStates = new ConcurrentLinkedQueue<>(); List> futures = new ArrayList<>(); locations.stream().filter(loc -> loc.getServerName() != null) .filter(loc -> loc.getRegion() != null).filter(loc -> !loc.getRegion().isOffline()) @@ -2973,9 +2974,9 @@ class RawAsyncHBaseAdmin implements AsyncAdmin { case NONE: default: } - if (!future.isDone()) { - future.complete(state); - } + } + if (!future.isDone()) { + future.complete(state); } } });