Repository: lens Updated Branches: refs/heads/master 7c9707148 -> 24d4f1531
LENS-1474 : Fix NPE in ExpressionResolver for SegmentationCandidate Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/24d4f153 Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/24d4f153 Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/24d4f153 Branch: refs/heads/master Commit: 24d4f1531497e8b877fe185a0ef742b18acf125c Parents: 7c97071 Author: Rajitha R <rajitha....@gmail.com> Authored: Mon Sep 11 09:53:21 2017 +0530 Committer: Amareshwari Sriramadasu <amareshw...@apache.org> Committed: Mon Sep 11 09:53:21 2017 +0530 ---------------------------------------------------------------------- .../apache/lens/cube/parse/ExpressionResolver.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lens/blob/24d4f153/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java ---------------------------------------------------------------------- diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java index 1268ef7..553468f 100644 --- a/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java +++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java @@ -317,12 +317,14 @@ class ExpressionResolver implements ContextRewriter { } ExpressionContext getExpressionContext(String expr, String alias) { - for (ExpressionContext ec : allExprsQueried.get(expr)) { - if (ec.getSrcAlias().equals(alias)) { - return ec; + if (allExprsQueried.get(expr) != null) { + for (ExpressionContext ec : allExprsQueried.get(expr)) { + if (ec.getSrcAlias().equals(alias)) { + return ec; + } } } - throw new IllegalArgumentException("no expression available for " + expr + " alias:" + alias); + return null; } boolean hasMeasures(String expr, CubeInterface cube) { @@ -540,8 +542,11 @@ class ExpressionResolver implements ContextRewriter { expressionContexts.add(expressionContext); for (StorageCandidate sc : scSet) { storageTableNames.add(sc.getStorageTable()); - expressionContexts.add(sc.getCubeQueryContext().getExprCtx() - .getExpressionContext(expressionContext.getExprCol().getName(), expressionContext.getSrcAlias())); + ExpressionContext ex = sc.getCubeQueryContext().getExprCtx().getExpressionContext(expressionContext. + getExprCol().getName(), expressionContext.getSrcAlias()); + if (ex != null) { + expressionContexts.add(ex); + } } for (ExpressionContext ec : expressionContexts) { for (CandidateTable table : ec.evaluableExpressions.keySet()) {