HIVE-10473 Spark client is recreated even spark configuration is not changed 
(Jimmy, reviewed by Szehon)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/769ccc1c
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/769ccc1c
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/769ccc1c

Branch: refs/heads/llap
Commit: 769ccc1c2040ba2cf7c6381a5b31a0868c60cd62
Parents: eb48ffd
Author: Jimmy Xiang <[email protected]>
Authored: Fri Apr 24 12:37:29 2015 -0700
Committer: Xuefu Zhang <[email protected]>
Committed: Mon Jun 1 14:02:34 2015 -0700

----------------------------------------------------------------------
 .../src/java/org/apache/hadoop/hive/conf/HiveConf.java   | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/769ccc1c/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 
b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index 6d22f11..d733d71 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -79,7 +79,7 @@ public class HiveConf extends Configuration {
   private final List<String> restrictList = new ArrayList<String>();
 
   private Pattern modWhiteListPattern = null;
-  private boolean isSparkConfigUpdated = false;
+  private volatile boolean isSparkConfigUpdated = false;
 
   public boolean getSparkConfigUpdated() {
     return isSparkConfigUpdated;
@@ -2420,8 +2420,13 @@ public class HiveConf extends Configuration {
       throw new IllegalArgumentException("Cannot modify " + name + " at 
runtime. It is in the list"
           + "of parameters that can't be modified at runtime");
     }
-    isSparkConfigUpdated = isSparkRelatedConfig(name);
-    set(name, value);
+    String oldValue = name != null ? get(name) : null;
+    if (name == null || value == null || !value.equals(oldValue)) {
+      // When either name or value is null, the set method below will fail,
+      // and throw IllegalArgumentException
+      set(name, value);
+      isSparkConfigUpdated = isSparkRelatedConfig(name);
+    }
   }
 
   /**

Reply via email to