From 76143721969e03d411f0d3a6baebfb0cfb1c6756 Mon Sep 17 00:00:00 2001 From: Reynold Xin Date: Tue, 8 Jul 2014 12:08:08 -0700 Subject: [PATCH 1/2] [SPARK-2409] Make SQLConf thread safe. --- .../src/main/scala/org/apache/spark/sql/SQLConf.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sql/core/src/main/scala/org/apache/spark/sql/SQLConf.scala b/sql/core/src/main/scala/org/apache/spark/sql/SQLConf.scala index 95ed0f28507f..f10d124c7bf1 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/SQLConf.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/SQLConf.scala @@ -26,6 +26,8 @@ import scala.collection.JavaConverters._ * queried either by passing SET commands into Spark SQL's DSL * functions (sql(), hql(), etc.), or by programmatically using setters and * getters of this class. This class is thread-safe. + * + * SQLConf is thread-safe (internally synchronized so safe to be used in multiple threads). */ trait SQLConf { @@ -71,11 +73,9 @@ trait SQLConf { Option(settings.get(key)).getOrElse(defaultValue) } - def getAll: Array[(String, String)] = settings.asScala.toArray + def getAll: Array[(String, String)] = settings.synchronized { settings.asScala.toArray } - def getOption(key: String): Option[String] = { - Option(settings.get(key)) - } + def getOption(key: String): Option[String] = Option(settings.get(key)) def contains(key: String): Boolean = settings.containsKey(key) From c1e0a5a906af510a1d207b2f0530591b9abf312b Mon Sep 17 00:00:00 2001 From: Reynold Xin Date: Tue, 8 Jul 2014 12:21:41 -0700 Subject: [PATCH 2/2] Fixed the duplicate comment. --- sql/core/src/main/scala/org/apache/spark/sql/SQLConf.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/core/src/main/scala/org/apache/spark/sql/SQLConf.scala b/sql/core/src/main/scala/org/apache/spark/sql/SQLConf.scala index f10d124c7bf1..b6fb46a3acc0 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/SQLConf.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/SQLConf.scala @@ -25,7 +25,7 @@ import scala.collection.JavaConverters._ * SQLConf holds mutable config parameters and hints. These can be set and * queried either by passing SET commands into Spark SQL's DSL * functions (sql(), hql(), etc.), or by programmatically using setters and - * getters of this class. This class is thread-safe. + * getters of this class. * * SQLConf is thread-safe (internally synchronized so safe to be used in multiple threads). */