This is an automated email from the ASF dual-hosted git repository. zjffdu pushed a commit to branch branch-0.9 in repository https://gitbox.apache.org/repos/asf/zeppelin.git
The following commit(s) were added to refs/heads/branch-0.9 by this push: new ba0ca46 [ZEPPELIN-5290] NPE on empty dynamic form input ba0ca46 is described below commit ba0ca46c3ddb1443207b81272dca2f3472ae79aa Author: Jeff Zhang <zjf...@apache.org> AuthorDate: Wed Jun 16 15:36:50 2021 +0800 [ZEPPELIN-5290] NPE on empty dynamic form input ### What is this PR for? Simple PR to address NPE on empty dynamic form input. Instead of throwing NPE, just make the form value as empty string. ### What type of PR is it? [Improvement] ### Todos * [ ] - Task ### What is the Jira issue? * https://issues.apache.org/jira/browse/ZEPPELIN-5290 ### How should this be tested? * CI pass ### Screenshots (if appropriate) ### Questions: * Does the licenses files need update? No * Is there breaking changes for older versions? No * Does this needs documentation? No Author: Jeff Zhang <zjf...@apache.org> Closes #4135 from zjffdu/ZEPPELIN-5290 and squashes the following commits: bb7fd498a6 [Jeff Zhang] address comment 07aee02e69 [Jeff Zhang] [ZEPPELIN-5290] NPE on empty dynamic form input (cherry picked from commit 9c1a9e0f78689ba13a1f46fcd3f6f10fd108bfc9) Signed-off-by: Jeff Zhang <zjf...@apache.org> --- .../src/main/java/org/apache/zeppelin/display/Input.java | 2 +- .../src/test/java/org/apache/zeppelin/display/InputTest.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/Input.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/Input.java index fd30ea1..4513ae8 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/Input.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/Input.java @@ -373,7 +373,7 @@ public class Input<T> implements Serializable { } } else { // single-selection - expanded = value.toString(); + expanded = StringUtils.defaultString((String) value, ""); } replaced = match.replaceFirst(expanded); match = pattern.matcher(replaced); diff --git a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/InputTest.java b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/InputTest.java index 98045d5..18f9840 100644 --- a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/InputTest.java +++ b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/InputTest.java @@ -143,6 +143,12 @@ public class InputTest { replaced = Input.getSimpleQuery(params, script, false); assertEquals("INPUT=some_inputSELECTED=s_op2\nCHECKED=c_op1\n" + "NEW_CHECKED=nc_a and nc_c", replaced); + + // textbox without param value provided + script = "INPUT='${input_form}'"; + params = new HashMap<>(); + replaced = Input.getSimpleQuery(params, script, false); + assertEquals("INPUT=''", replaced); } }