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); + } } /**
