This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-2.2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2.2 by this push:
     new cfa1019  HBASE-25088 
CatalogFamilyFormat/MetaTableAccessor.parseRegionInfoFromRegionName incorrectly 
setEndKey to regionId (#2462)
cfa1019 is described below

commit cfa10195e3ce4a5a1b81e6bc31740214edc07b6e
Author: Joseph295 <517536...@qq.com>
AuthorDate: Sun Sep 27 11:05:16 2020 +0800

    HBASE-25088 
CatalogFamilyFormat/MetaTableAccessor.parseRegionInfoFromRegionName incorrectly 
setEndKey to regionId (#2462)
    
    Signed-off-by: Duo Zhang <zhang...@apache.org>
---
 .../org/apache/hadoop/hbase/MetaTableAccessor.java |  7 +------
 .../apache/hadoop/hbase/TestMetaTableAccessor.java | 23 ++++++++++++++++++++++
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java
index 0e41146..82ec6fd 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java
@@ -325,12 +325,7 @@ public class MetaTableAccessor {
     long regionId = Long.parseLong(Bytes.toString(fields[2]));
     int replicaId = fields.length > 3 ? 
Integer.parseInt(Bytes.toString(fields[3]), 16) : 0;
     return RegionInfoBuilder.newBuilder(TableName.valueOf(fields[0]))
-              .setStartKey(fields[1])
-              .setEndKey(fields[2])
-              .setSplit(false)
-              .setRegionId(regionId)
-              .setReplicaId(replicaId)
-              .build();
+      
.setStartKey(fields[1]).setRegionId(regionId).setReplicaId(replicaId).build();
   }
 
   /**
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMetaTableAccessor.java 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMetaTableAccessor.java
index b22c5c2..87963ab 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMetaTableAccessor.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMetaTableAccessor.java
@@ -422,6 +422,29 @@ public class TestMetaTableAccessor {
         
MetaTableAccessor.parseReplicaIdFromServerColumn(Bytes.toBytes(column6)));
   }
 
+  /**
+   * The info we can get from the regionName is: table name, start key, 
regionId, replicaId.
+   */
+  @Test
+  public void testParseRegionInfoFromRegionName() throws IOException  {
+    RegionInfo originalRegionInfo = RegionInfoBuilder.newBuilder(
+      TableName.valueOf(name.getMethodName())).setRegionId(999999L)
+      .setStartKey(Bytes.toBytes("2")).setEndKey(Bytes.toBytes("3"))
+      .setReplicaId(1).build();
+    RegionInfo newParsedRegionInfo = MetaTableAccessor
+      .parseRegionInfoFromRegionName(originalRegionInfo.getRegionName());
+    assertEquals("Parse TableName error", originalRegionInfo.getTable(),
+      newParsedRegionInfo.getTable());
+    assertEquals("Parse regionId error", originalRegionInfo.getRegionId(),
+      newParsedRegionInfo.getRegionId());
+    assertTrue("Parse startKey error", 
Bytes.equals(originalRegionInfo.getStartKey(),
+      newParsedRegionInfo.getStartKey()));
+    assertEquals("Parse replicaId error", originalRegionInfo.getReplicaId(),
+      newParsedRegionInfo.getReplicaId());
+    assertTrue("We can't parse endKey from regionName only",
+      Bytes.equals(HConstants.EMPTY_END_ROW, newParsedRegionInfo.getEndKey()));
+  }
+
   @Test
   public void testMetaReaderGetColumnMethods() {
     assertArrayEquals(HConstants.SERVER_QUALIFIER, 
MetaTableAccessor.getServerColumn(0));

Reply via email to