From cab1f6f239ed6611b729421dfb66cafa6bb3e6ed Mon Sep 17 00:00:00 2001 From: Bhupendra Date: Fri, 4 Sep 2015 18:07:15 +0530 Subject: [PATCH] HBASE-14366: NPE in case visibility expression is not present in labels table during importtsv run --- .../hbase/mapreduce/DefaultVisibilityExpressionResolver.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/DefaultVisibilityExpressionResolver.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/DefaultVisibilityExpressionResolver.java index 70af63a..cbfb6f2 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/DefaultVisibilityExpressionResolver.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/DefaultVisibilityExpressionResolver.java @@ -54,6 +54,8 @@ public class DefaultVisibilityExpressionResolver implements VisibilityExpression private Configuration conf; private final Map labels = new HashMap(); + private static final int NON_EXIST_LABEL_ORDINAL = 0; + @Override public Configuration getConf() { return this.conf; @@ -124,7 +126,12 @@ public class DefaultVisibilityExpressionResolver implements VisibilityExpression VisibilityLabelOrdinalProvider provider = new VisibilityLabelOrdinalProvider() { @Override public int getLabelOrdinal(String label) { - return labels.get(label); + Integer ordinal = labels.get(label); + if (ordinal != null) { + return ordinal.intValue(); + } + // 0 denotes not available + return NON_EXIST_LABEL_ORDINAL; } @Override -- 1.8.4.msysgit.0