You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2020/02/29 06:40:23 UTC

[hive] branch master updated: HIVE-16116 : Beeline throws NPE when beeline.hiveconfvariables={} in beeline.properties (Rajesh Balamohan via Peter Vary)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new b6d8b80  HIVE-16116 : Beeline throws NPE when beeline.hiveconfvariables={} in beeline.properties (Rajesh Balamohan via Peter Vary)
b6d8b80 is described below

commit b6d8b809d25372e9d261eed04049d047d670ed5d
Author: Rajesh Balamohan <rb...@cloudera.com>
AuthorDate: Fri Feb 28 22:39:32 2020 -0800

    HIVE-16116 : Beeline throws NPE when beeline.hiveconfvariables={} in beeline.properties (Rajesh Balamohan via Peter Vary)
    
    Signed-off-by: Ashutosh Chauhan <ha...@apache.org>
---
 .../java/org/apache/hive/beeline/BeeLineOpts.java  |  8 ++++++
 .../apache/hive/beeline/TestBeelineArgParsing.java | 32 ++++++++++++++++++++++
 2 files changed, 40 insertions(+)

diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
index 60c740a..9fed81e 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
@@ -625,6 +625,10 @@ public class BeeLineOpts implements Completer {
   }
 
   public void setHiveVariables(Map<String, String> hiveVariables) {
+    if (hiveVariables == null) {
+      this.hiveVariables.clear();
+      return;
+    }
     this.hiveVariables = hiveVariables;
   }
 
@@ -658,6 +662,10 @@ public class BeeLineOpts implements Completer {
   }
 
   public void setHiveConfVariables(Map<String, String> hiveConfVariables) {
+    if (hiveConfVariables == null) {
+      this.hiveConfVariables.clear();
+      return;
+    }
     this.hiveConfVariables = hiveConfVariables;
   }
 
diff --git a/beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java b/beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java
index dcedbc2..db0cba3 100644
--- a/beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java
+++ b/beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java
@@ -18,7 +18,12 @@
 
 package org.apache.hive.beeline;
 
+import java.io.BufferedWriter;
+import java.io.ByteArrayOutputStream;
+import java.io.FileInputStream;
+import java.io.FileWriter;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -123,6 +128,33 @@ public class TestBeelineArgParsing {
   }
 
   @Test
+  public void testEmptyHiveConfVariable() throws Exception {
+    ByteArrayOutputStream os = new ByteArrayOutputStream();
+    PrintStream ops = new PrintStream(os);
+    TestBeeline bl = new TestBeeline();
+    bl.setOutputStream(ops);
+    BeeLineOpts opts = new BeeLineOpts(bl, System.getProperties());
+    String[] args = { "--hiveconf", "hadoop.tmp.dir=/tmp" };
+
+    File rcFile = new File(opts.saveDir(), "beeline.properties");
+    rcFile.deleteOnExit();
+
+    BufferedWriter writer = new BufferedWriter(new FileWriter(rcFile));
+    writer.write("beeline.hiveconfvariables={}");
+    writer.newLine();
+    writer.write("beeline.hivevariables={}");
+    writer.newLine();
+    writer.flush();
+
+    try (InputStream stream = new FileInputStream(rcFile)) {
+      bl.getOpts().load(stream);
+      bl.initArgs(args);
+      bl.getOpts().getHiveVariables().get("test");
+    }
+  }
+
+
+  @Test
   public void testPasswordFileArgs() throws Exception {
     TestBeeline bl = new TestBeeline();
     File passFile = new File("file.password");