Repository: hbase Updated Branches: refs/heads/branch-2 4fea86296 -> 1cb05a18b
HBASE-20419 Fix potential NPE in ZKUtil#listChildrenAndWatchForNewChildren callers Signed-off-by: Yu Li <l...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/1cb05a18 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/1cb05a18 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/1cb05a18 Branch: refs/heads/branch-2 Commit: 1cb05a18bc1564585ce9c03680b56349672cd709 Parents: 4fea862 Author: lujie <lu...@ict.ac.cn> Authored: Mon Apr 16 16:01:49 2018 +0800 Committer: Yu Li <l...@apache.org> Committed: Mon Apr 16 16:07:59 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/1cb05a18/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 9294255..d6618bf 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 @@ -353,7 +353,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/1cb05a18/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); }