From e475ae66f3912d3a5a20ccb1246c3ff5b718c612 Mon Sep 17 00:00:00 2001 From: zhangduo Date: Sun, 21 Apr 2019 23:03:05 +0800 Subject: [PATCH] HBASE-22282 Should deal with error in the callback of RawAsyncHBaseAdmin.splitRegion methods --- .../apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java | 8 ++++++++ 1 file changed, 8 insertions(+) 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 b6ced40e9b3e..35cb92276ab3 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 @@ -1367,6 +1367,10 @@ public CompletableFuture split(TableName tableName, byte[] splitPoint) { public CompletableFuture splitRegion(byte[] regionName) { CompletableFuture future = new CompletableFuture<>(); addListener(getRegionLocation(regionName), (location, err) -> { + if (err != null) { + future.completeExceptionally(err); + return; + } RegionInfo regionInfo = location.getRegion(); if (regionInfo.getReplicaId() != RegionInfo.DEFAULT_REPLICA_ID) { future @@ -1397,6 +1401,10 @@ public CompletableFuture splitRegion(byte[] regionName, byte[] splitPoint) "splitPoint is null. If you don't specify a splitPoint, use splitRegion(byte[]) instead"); CompletableFuture future = new CompletableFuture<>(); addListener(getRegionLocation(regionName), (location, err) -> { + if (err != null) { + future.completeExceptionally(err); + return; + } RegionInfo regionInfo = location.getRegion(); if (regionInfo.getReplicaId() != RegionInfo.DEFAULT_REPLICA_ID) { future