You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by su...@apache.org on 2016/07/21 00:32:23 UTC
incubator-atlas git commit: ATLAS-1036 Multiple instances of
AtlasPluginClassloader getting initialized (sumasai, mneethiraj)
Repository: incubator-atlas
Updated Branches:
refs/heads/master e15629c2e -> b73e62ba3
ATLAS-1036 Multiple instances of AtlasPluginClassloader getting initialized (sumasai, mneethiraj)
Project: http://git-wip-us.apache.org/repos/asf/incubator-atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/b73e62ba
Tree: http://git-wip-us.apache.org/repos/asf/incubator-atlas/tree/b73e62ba
Diff: http://git-wip-us.apache.org/repos/asf/incubator-atlas/diff/b73e62ba
Branch: refs/heads/master
Commit: b73e62ba3cb58df422246bfad880657b982f1bc5
Parents: e15629c
Author: Suma Shivaprasad <su...@gmail.com>
Authored: Wed Jul 20 17:32:15 2016 -0700
Committer: Suma Shivaprasad <su...@gmail.com>
Committed: Wed Jul 20 17:32:15 2016 -0700
----------------------------------------------------------------------
.../classloader/AtlasPluginClassLoader.java | 23 ++++++++++++++------
release-log.txt | 1 +
2 files changed, 17 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/b73e62ba/plugin-classloader/src/main/java/org/apache/atlas/plugin/classloader/AtlasPluginClassLoader.java
----------------------------------------------------------------------
diff --git a/plugin-classloader/src/main/java/org/apache/atlas/plugin/classloader/AtlasPluginClassLoader.java b/plugin-classloader/src/main/java/org/apache/atlas/plugin/classloader/AtlasPluginClassLoader.java
index c5214bd..92cc406 100644
--- a/plugin-classloader/src/main/java/org/apache/atlas/plugin/classloader/AtlasPluginClassLoader.java
+++ b/plugin-classloader/src/main/java/org/apache/atlas/plugin/classloader/AtlasPluginClassLoader.java
@@ -35,6 +35,8 @@ import java.util.Enumeration;
public final class AtlasPluginClassLoader extends URLClassLoader {
private static final Logger LOG = LoggerFactory.getLogger(AtlasPluginClassLoader.class);
+ private static volatile AtlasPluginClassLoader me = null;
+
private final MyClassLoader componentClassLoader;
private AtlasPluginClassLoader(String pluginType, Class<?> pluginClass) throws Exception {
@@ -54,13 +56,20 @@ public final class AtlasPluginClassLoader extends URLClassLoader {
public static AtlasPluginClassLoader getInstance(final String pluginType, final Class<?> pluginClass)
throws Exception {
- AtlasPluginClassLoader ret =
- AccessController.doPrivileged(new PrivilegedExceptionAction<AtlasPluginClassLoader>() {
- public AtlasPluginClassLoader run() throws Exception {
- return new AtlasPluginClassLoader(pluginType, pluginClass);
- }
- });
-
+ AtlasPluginClassLoader ret = me;
+ if (ret == null) {
+ synchronized (AtlasPluginClassLoader.class) {
+ ret = me;
+ if (ret == null) {
+ me = AccessController.doPrivileged(new PrivilegedExceptionAction<AtlasPluginClassLoader>() {
+ public AtlasPluginClassLoader run() throws Exception {
+ return new AtlasPluginClassLoader(pluginType, pluginClass);
+ }
+ });
+ ret = me;
+ }
+ }
+ }
return ret;
}
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/b73e62ba/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 1b5d899..a2d01ba 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -6,6 +6,7 @@ INCOMPATIBLE CHANGES:
ALL CHANGES:
+ATLAS-1036 Multiple instances of AtlasPluginClassloader getting initialized (sumasai, mneethiraj)
ATLAS-1033 fix for issues flagged by Coverity scan (mneethiraj via sumasai)
ATLAS-1036 Compilation error on java 1.8 - GraphBackedDiscoveryService (shwethags via sumasai)
ATLAS-1034 Incorrect Falcon hook impl class name in Falcon hook shim (mneethiraj via shwethags)