diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java index 396e182..b97c23f 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java @@ -2845,6 +2845,7 @@ public class HRegionServer extends HasThread implements throws NotServingRegionException { //Check for permissions to close. Region actualRegion = this.getFromOnlineRegions(encodedName); + // Can be null if we're calling close on a region that's not online if ((actualRegion != null) && (actualRegion.getCoprocessorHost() != null)) { try { actualRegion.getCoprocessorHost().preClose(false); diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java index e09e0e3..f45fc69 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java @@ -1324,12 +1324,6 @@ public class RSRpcServices implements HBaseRPCErrorHandler, } final String encodedRegionName = ProtobufUtil.getRegionEncodedName(request.getRegion()); - // Can be null if we're calling close on a region that's not online - final Region region = regionServer.getFromOnlineRegions(encodedRegionName); - if ((region != null) && (region .getCoprocessorHost() != null)) { - region.getCoprocessorHost().preClose(false); - } - requestCount.increment(); LOG.info("Close " + encodedRegionName + ", moving to " + sn); boolean closed = regionServer.closeRegion(encodedRegionName, false, sn);