You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by li...@apache.org on 2018/04/16 08:07:43 UTC

hbase git commit: HBASE-20419 Fix potential NPE in ZKUtil#listChildrenAndWatchForNewChildren callers

Repository: hbase
Updated Branches:
  refs/heads/master 125767b44 -> 1339ff966


HBASE-20419 Fix potential NPE in ZKUtil#listChildrenAndWatchForNewChildren callers

Signed-off-by: Yu Li <li...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/1339ff96
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/1339ff96
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/1339ff96

Branch: refs/heads/master
Commit: 1339ff9666f449d8850236802c008a27307b7c61
Parents: 125767b
Author: lujie <lu...@ict.ac.cn>
Authored: Mon Apr 16 16:01:49 2018 +0800
Committer: Yu Li <li...@apache.org>
Committed: Mon Apr 16 16:06:57 2018 +0800

----------------------------------------------------------------------
 .../apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java  | 6 +++++-
 .../apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java | 8 ++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/1339ff96/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
----------------------------------------------------------------------
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 a9f8284..659343c 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
@@ -354,7 +354,11 @@ final class RSGroupInfoManagerImpl implements RSGroupInfoManager {
     //Overwrite any info stored by table, this takes precedence
     try {
       if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {
-        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {
+        List<String> children = ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath);
+        if (children == null) {
+          return RSGroupInfoList;
+        }
+        for(String znode: children) {
           byte[] data = ZKUtil.getData(watcher, ZNodePaths.joinZNode(groupBasePath, znode));
           if(data.length > 0) {
             ProtobufUtil.expectPBMagicPrefix(data);

http://git-wip-us.apache.org/repos/asf/hbase/blob/1339ff96/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java
index f29d133..57d929d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java
@@ -135,8 +135,12 @@ public class ZKProcedureMemberRpcs implements ProcedureMemberRpcs {
     LOG.debug("Checking for aborted procedures on node: '" + zkController.getAbortZnode() + "'");
     try {
       // this is the list of the currently aborted procedues
-      for (String node : ZKUtil.listChildrenAndWatchForNewChildren(zkController.getWatcher(),
-        zkController.getAbortZnode())) {
+      List<String> children = ZKUtil.listChildrenAndWatchForNewChildren(zkController.getWatcher(),
+                   zkController.getAbortZnode());
+      if (children == null || children.isEmpty()) {
+        return;
+      }
+      for (String node : children) {
         String abortNode = ZNodePaths.joinZNode(zkController.getAbortZnode(), node);
         abort(abortNode);
       }