You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by zj...@apache.org on 2021/06/18 03:05:17 UTC

[zeppelin] branch master updated: [ZEPPELIN-5290] NPE on empty dynamic form input

This is an automated email from the ASF dual-hosted git repository.

zjffdu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zeppelin.git


The following commit(s) were added to refs/heads/master by this push:
     new 9c1a9e0  [ZEPPELIN-5290] NPE on empty dynamic form input
9c1a9e0 is described below

commit 9c1a9e0f78689ba13a1f46fcd3f6f10fd108bfc9
Author: Jeff Zhang <zj...@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 <zj...@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
---
 .../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);
   }
 
 }