You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by pa...@apache.org on 2020/09/04 17:34:53 UTC

[hbase] branch branch-2 updated: HBASE-24719: Renaming invalid rsgroup throws NPE instead of proper error message (#2074)

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

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


The following commit(s) were added to refs/heads/branch-2 by this push:
     new aac21ae  HBASE-24719: Renaming invalid rsgroup throws NPE instead of proper error message (#2074)
aac21ae is described below

commit aac21aebec3e592705b2bbe4b36fc5db97ff9b5e
Author: Mohammad Arshad <ar...@apache.org>
AuthorDate: Fri Sep 4 23:04:32 2020 +0530

    HBASE-24719: Renaming invalid rsgroup throws NPE instead of proper error message (#2074)
    
    Signed-off-by: Pankaj Kumar<pa...@apache.org>
---
 .../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java   | 5 ++++-
 .../java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java  | 8 ++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
index 74e7bc9..a09d2f9 100644
--- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
+++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
@@ -404,11 +404,14 @@ final class RSGroupInfoManagerImpl implements RSGroupInfoManager {
     if (oldName.equals(RSGroupInfo.DEFAULT_GROUP)) {
       throw new ConstraintException("Can't rename default rsgroup");
     }
+    RSGroupInfo oldGroup = getRSGroup(oldName);
+    if (oldGroup == null) {
+      throw new ConstraintException("RSGroup " + oldName + " does not exist");
+    }
     if (rsGroupMap.containsKey(newName)) {
       throw new ConstraintException("Group already exists: " + newName);
     }
 
-    RSGroupInfo oldGroup = getRSGroup(oldName);
     Map<String,RSGroupInfo> newGroupMap = Maps.newHashMap(rsGroupMap);
     newGroupMap.remove(oldName);
     RSGroupInfo newGroup = new RSGroupInfo(newName,
diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java
index 8a7da6c..18611b2 100644
--- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java
+++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java
@@ -558,6 +558,14 @@ public class TestRSGroupsAdmin1 extends TestRSGroupsBase {
     assertNotNull(anotherGroup);
     assertEquals(1, anotherGroup.getServers().size());
 
+    //Rename a non existing RSGroup
+    try {
+      rsGroupAdmin.renameRSGroup("nonExistingRSGroup", "newRSGroup1");
+      fail("ConstraintException was expected.");
+    } catch (ConstraintException e) {
+      assertTrue(e.getMessage().contains("does not exist"));
+    }
+
     //Rename to existing group
     try {
       rsGroupAdmin.renameRSGroup(oldGroup.getName(), anotherRSGroupName);