You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2015/04/20 15:57:13 UTC
tomee git commit: URLClassLoaderFirst should be a Parallel classloader
Repository: tomee
Updated Branches:
refs/heads/master c31f000e4 -> 4ddc4a1e0
URLClassLoaderFirst should be a Parallel classloader
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/4ddc4a1e
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/4ddc4a1e
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/4ddc4a1e
Branch: refs/heads/master
Commit: 4ddc4a1e07e8d5488df6d17205cf5ee06a1cab7c
Parents: c31f000
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Mon Apr 20 15:57:07 2015 +0200
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Mon Apr 20 15:57:07 2015 +0200
----------------------------------------------------------------------
.../openejb/util/classloader/URLClassLoaderFirst.java | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/4ddc4a1e/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java b/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
index e4b4405..7ae5c68 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
@@ -33,8 +33,6 @@ import java.util.concurrent.locks.ReentrantLock;
// TODO: look SM usage, find a better name
public class URLClassLoaderFirst extends URLClassLoader {
- private static final ReentrantLock LOCK;
-
// log4j is optional, moreover it will likely not work if not skipped and loaded by a temp classloader
private static final boolean SKIP_LOG4J = "true".equals(SystemInstance.get().getProperty("openejb.skip.log4j", "true")) && skipLib("org.apache.log4j.Logger");
private static final boolean SKIP_MYFACES = "true".equals(SystemInstance.get().getProperty("openejb.skip.myfaces", "true")) && skipLib("org.apache.myfaces.spi.FactoryFinderProvider");
@@ -52,8 +50,8 @@ public class URLClassLoaderFirst extends URLClassLoader {
public static final Collection<String> FORCED_LOAD = new ArrayList<>();
static {
- LOCK = new ReentrantLock();
reloadConfig();
+ ClassLoader.registerAsParallelCapable();
}
public static final String SLF4J_BINDER_CLASS = "org/slf4j/impl/StaticLoggerBinder.class";
@@ -93,11 +91,7 @@ public class URLClassLoaderFirst extends URLClassLoader {
@Override
public Class<?> loadClass(final String name, final boolean resolve) throws ClassNotFoundException {
-
- final ReentrantLock lock = LOCK;
- lock.lock();
-
- try {
+ synchronized (getClassLoadingLock(name)) {
// already loaded?
Class<?> clazz = findLoadedClass(name);
if (clazz != null) {
@@ -145,8 +139,6 @@ public class URLClassLoaderFirst extends URLClassLoader {
}
throw new ClassNotFoundException(name);
- } finally {
- lock.unlock();
}
}