HBASE-22179 Fix RawAsyncHBaseAdmin.getCompactionState

This commit is contained in:
zhangduo 2019-04-06 22:17:46 +08:00
parent 448f26775c
commit 0b46ac5db3
1 changed files with 5 additions and 4 deletions

View File

@ -36,6 +36,7 @@ import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
@ -2931,7 +2932,7 @@ class RawAsyncHBaseAdmin implements AsyncAdmin {
future.completeExceptionally(err); future.completeExceptionally(err);
return; return;
} }
List<CompactionState> regionStates = new ArrayList<>(); ConcurrentLinkedQueue<CompactionState> regionStates = new ConcurrentLinkedQueue<>();
List<CompletableFuture<CompactionState>> futures = new ArrayList<>(); List<CompletableFuture<CompactionState>> futures = new ArrayList<>();
locations.stream().filter(loc -> loc.getServerName() != null) locations.stream().filter(loc -> loc.getServerName() != null)
.filter(loc -> loc.getRegion() != null).filter(loc -> !loc.getRegion().isOffline()) .filter(loc -> loc.getRegion() != null).filter(loc -> !loc.getRegion().isOffline())
@ -2973,9 +2974,9 @@ class RawAsyncHBaseAdmin implements AsyncAdmin {
case NONE: case NONE:
default: default:
} }
if (!future.isDone()) { }
future.complete(state); if (!future.isDone()) {
} future.complete(state);
} }
} }
}); });