diff --git hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncProcess.java hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncProcess.java index 2563a4b..cb45cf7 100644 --- hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncProcess.java +++ hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncProcess.java @@ -381,7 +381,7 @@ class AsyncProcess { // Remember the previous decisions about regions or region servers we put in the // final multi. - Map regionIncluded = new HashMap(); + Map regionIncluded = new HashMap(); Map serverIncluded = new HashMap(); int posInList = -1; @@ -483,10 +483,10 @@ class AsyncProcess { * @return true if this region is considered as busy. */ protected boolean canTakeOperation(HRegionLocation loc, - Map regionsIncluded, + Map regionsIncluded, Map serversIncluded) { - long regionId = loc.getRegionInfo().getRegionId(); - Boolean regionPrevious = regionsIncluded.get(regionId); + HRegionInfo regionInfo = loc.getRegionInfo(); + Boolean regionPrevious = regionsIncluded.get(regionInfo); if (regionPrevious != null) { // We already know what to do with this region. @@ -496,14 +496,14 @@ class AsyncProcess { Boolean serverPrevious = serversIncluded.get(loc.getServerName()); if (Boolean.FALSE.equals(serverPrevious)) { // It's a new region, on a region server that we have already excluded. - regionsIncluded.put(regionId, Boolean.FALSE); + regionsIncluded.put(regionInfo, Boolean.FALSE); return false; } AtomicInteger regionCnt = taskCounterPerRegion.get(loc.getRegionInfo().getRegionName()); if (regionCnt != null && regionCnt.get() >= maxConcurrentTasksPerRegion) { // Too many tasks on this region already. - regionsIncluded.put(regionId, Boolean.FALSE); + regionsIncluded.put(regionInfo, Boolean.FALSE); return false; } @@ -526,7 +526,7 @@ class AsyncProcess { } if (!ok) { - regionsIncluded.put(regionId, Boolean.FALSE); + regionsIncluded.put(regionInfo, Boolean.FALSE); serversIncluded.put(loc.getServerName(), Boolean.FALSE); return false; } @@ -536,7 +536,7 @@ class AsyncProcess { assert serverPrevious.equals(Boolean.TRUE); } - regionsIncluded.put(regionId, Boolean.TRUE); + regionsIncluded.put(regionInfo, Boolean.TRUE); return true; }