Repository: incubator-sentry Updated Branches: refs/heads/master d2913b8d5 -> 6052eb2d8
SENTRY-966: SqoopAuthBindingSingleton uses bad double check locking idiom (Colm O hEigeartaigh via Dapeng Sun) Project: http://git-wip-us.apache.org/repos/asf/incubator-sentry/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-sentry/commit/6052eb2d Tree: http://git-wip-us.apache.org/repos/asf/incubator-sentry/tree/6052eb2d Diff: http://git-wip-us.apache.org/repos/asf/incubator-sentry/diff/6052eb2d Branch: refs/heads/master Commit: 6052eb2d8b33bed1cb302fd09f360fc3ef13797f Parents: d2913b8 Author: Sun Dapeng <s...@apache.org> Authored: Fri Nov 27 09:48:50 2015 +0800 Committer: Sun Dapeng <s...@apache.org> Committed: Fri Nov 27 09:48:50 2015 +0800 ---------------------------------------------------------------------- .../sqoop/binding/SqoopAuthBindingSingleton.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/6052eb2d/sentry-binding/sentry-binding-sqoop/src/main/java/org/apache/sentry/sqoop/binding/SqoopAuthBindingSingleton.java ---------------------------------------------------------------------- diff --git a/sentry-binding/sentry-binding-sqoop/src/main/java/org/apache/sentry/sqoop/binding/SqoopAuthBindingSingleton.java b/sentry-binding/sentry-binding-sqoop/src/main/java/org/apache/sentry/sqoop/binding/SqoopAuthBindingSingleton.java index 7dd2a28..39e001f 100644 --- a/sentry-binding/sentry-binding-sqoop/src/main/java/org/apache/sentry/sqoop/binding/SqoopAuthBindingSingleton.java +++ b/sentry-binding/sentry-binding-sqoop/src/main/java/org/apache/sentry/sqoop/binding/SqoopAuthBindingSingleton.java @@ -19,7 +19,6 @@ package org.apache.sentry.sqoop.binding; import java.net.MalformedURLException; import java.net.URL; -import org.apache.hadoop.conf.Configuration; import org.apache.sentry.sqoop.conf.SqoopAuthConf; import org.apache.sentry.sqoop.conf.SqoopAuthConf.AuthzConfVars; import org.apache.sqoop.core.SqoopConfiguration; @@ -31,7 +30,11 @@ import com.google.common.base.Strings; public class SqoopAuthBindingSingleton { private static Logger log = LoggerFactory.getLogger(SqoopAuthBindingSingleton.class); - private static SqoopAuthBindingSingleton instance = null; + + // Lazy init holder class idiom to avoid DTL + private static class SqoopAuthBindingSingletonHolder { + static final SqoopAuthBindingSingleton instance = new SqoopAuthBindingSingleton(); + } private SqoopAuthBinding binding; @@ -83,14 +86,7 @@ public class SqoopAuthBindingSingleton { } public static SqoopAuthBindingSingleton getInstance() { - if (instance == null) { - synchronized (SqoopAuthBindingSingleton.class) { - if (instance == null) { - instance = new SqoopAuthBindingSingleton(); - } - } - } - return instance; + return SqoopAuthBindingSingletonHolder.instance; } public SqoopAuthBinding getAuthBinding() {