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 <[email protected]>
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,