[jboss-cvs] JBossAS SVN: r79343 - projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Oct 10 09:21:28 EDT 2008
Author: adrian at jboss.org
Date: 2008-10-10 09:21:28 -0400 (Fri, 10 Oct 2008)
New Revision: 79343
Modified:
projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoader.java
Log:
[JBCL-49] - Move perliminaries out of the classloader synchronization in loadClass
Modified: projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoader.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoader.java 2008-10-10 13:21:14 UTC (rev 79342)
+++ projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoader.java 2008-10-10 13:21:28 UTC (rev 79343)
@@ -347,7 +347,7 @@
}
@Override
- protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException
+ protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException
{
boolean trace = log.isTraceEnabled();
if (trace)
@@ -367,29 +367,34 @@
result = Class.forName(name, true, this);
if (trace)
log.trace(this + " resolved array " + ClassLoaderUtils.classToString(result));
+ if (result != null)
+ return result;
}
- // Not already loaded use the domain
- if (result == null)
- result = loadClassFromDomain(name, trace);
-
- // Still not found
- if (result == null)
+ synchronized (this)
{
- if (trace)
- log.trace(this + " class not found " + name);
- throw new ClassNotFoundException(name + " from " + toLongString());
+ // Not already loaded use the domain
+ if (result == null)
+ result = loadClassFromDomain(name, trace);
+
+ // Still not found
+ if (result == null)
+ {
+ if (trace)
+ log.trace(this + " class not found " + name);
+ throw new ClassNotFoundException(name + " from " + toLongString());
+ }
+
+ // Link the class if requested
+ if (resolve)
+ {
+ if (trace)
+ log.trace(this + " resolveClass " + ClassLoaderUtils.classToString(result));
+ resolveClass(result);
+ }
+
+ return result;
}
-
- // Link the class if requested
- if (resolve)
- {
- if (trace)
- log.trace(this + " resolveClass " + ClassLoaderUtils.classToString(result));
- resolveClass(result);
- }
-
- return result;
}
@Override
More information about the jboss-cvs-commits
mailing list