From 028416007b8db43c0034ea89e100c18c777ec9cf Mon Sep 17 00:00:00 2001 From: chenheng Date: Thu, 28 Apr 2016 14:50:36 +0800 Subject: [PATCH] HBASE-15714 We are calling checkRow() twice in doMiniBatchMutation() --- .../main/java/org/apache/hadoop/hbase/regionserver/HRegion.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java index 1210253..790fbcd 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java @@ -3031,7 +3031,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi // If we haven't got any rows in our batch, we should block to get the next one. RowLock rowLock = null; try { - rowLock = getRowLock(mutation.getRow(), true); + rowLock = getRowLockInternal(mutation.getRow(), true); } catch (IOException ioe) { LOG.warn("Failed getting lock, row=" + Bytes.toStringBinary(mutation.getRow()), ioe); } @@ -5119,8 +5119,11 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi */ @Override public RowLock getRowLock(byte[] row, boolean readLock) throws IOException { - // Make sure the row is inside of this region before getting the lock for it. checkRow(row, "row lock"); + return getRowLockInternal(row, readLock); + } + + private RowLock getRowLockInternal(byte[] row, boolean readLock) throws IOException { // create an object to use a a key in the row lock map HashedBytes rowKey = new HashedBytes(row); -- 1.9.3 (Apple Git-50)