This is an automated email from the ASF dual-hosted git repository. vladimirsitnikov pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/master by this push: new 4ccf5ca Make SparkHandlerImpl singletone thread-safe 4ccf5ca is described below commit 4ccf5caea070580ae030074dc4c213fd67d73255 Author: Vladimir Sitnikov <sitnikov.vladi...@gmail.com> AuthorDate: Wed Feb 6 21:15:47 2019 +0300 Make SparkHandlerImpl singletone thread-safe --- .../org/apache/calcite/adapter/spark/SparkHandlerImpl.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/spark/src/main/java/org/apache/calcite/adapter/spark/SparkHandlerImpl.java b/spark/src/main/java/org/apache/calcite/adapter/spark/SparkHandlerImpl.java index e73b4bd..811a047 100644 --- a/spark/src/main/java/org/apache/calcite/adapter/spark/SparkHandlerImpl.java +++ b/spark/src/main/java/org/apache/calcite/adapter/spark/SparkHandlerImpl.java @@ -47,7 +47,11 @@ public class SparkHandlerImpl implements CalcitePrepare.SparkHandler { private final JavaSparkContext sparkContext = new JavaSparkContext("local[1]", "calcite"); - private static SparkHandlerImpl instance; + /** Thread-safe holder */ + private static class Holder { + private static final SparkHandlerImpl INSTANCE = new SparkHandlerImpl(); + } + private static final File CLASS_DIR = new File("target/classes"); /** Creates a SparkHandlerImpl. */ @@ -73,10 +77,7 @@ public class SparkHandlerImpl implements CalcitePrepare.SparkHandler { * this via reflection. */ @SuppressWarnings("UnusedDeclaration") public static CalcitePrepare.SparkHandler instance() { - if (instance == null) { - instance = new SparkHandlerImpl(); - } - return instance; + return Holder.INSTANCE; } public RelNode flattenTypes(RelOptPlanner planner, RelNode rootRel,