How to re-compile a class loader
lavot Jul 4, 2012 3:06 PMHi,
I'm completely new here. I've been requested to help to improve perf on a project that runs under jboss 5.1.0.
We've done a jstack and most of the threads that run our code are blocked in the class loader in loadClass(). I've downloaded 2.09.GA jar of the class loader which seemed to improve a little the perf but now most of the threads are blocked in doLoad().
I've activated the traces for BaseClassLoader to try to understand which classes are loaded as after a few minutes of execution, I would have expected that all the classes would have been already loaded.
And that seems to be true as far as I saw:
2012-07-03 14:21:46,429 [WorkManager(2)-3] TRACE org.jboss.classloader.spi.base.BaseClassLoader - BaseClassLoader@c9447{vfszip:/opt/ESG/absapp/jboss-5.1.0.GA/server/prime/deploy/prime-cap-sms-ejb.jar/} loadClass ...capabilities.common.adapter.CapOutgoingAdapterApi resolve=false
2012-07-03 14:21:46,431 [WorkManager(2)-3] TRACE org.jboss.classloader.spi.base.BaseClassLoader - BaseClassLoader@c9447{vfszip:/opt/ESG/absapp/jboss-5.1.0.GA/server/prime/deploy/prime-cap-sms-ejb.jar/} already loaded class interface ...capabilities.common.adapter.CapOutgoingAdapterApi{cl=BaseClassLoader@c9447{vfszip:/opt/ESG/absapp/jboss-5.1.0.GA/server/prime/deploy/prime-cap-sms-ejb.jar/} codeSource=(jar:file:/opt/ESG/absapp/jboss-5.1.0.GA/server/prime/deploy/prime-cap-sms-ejb.jar!/ <no signer certificates>)}
Therefore, I don't understand why my class loader goes to doLoad() and then there gets blocked on the synchronize.
So, after that long introduction, here is my point. I'd like to understand better what is done in the class loader. So, I've decided to recompile a class loader with more traces but I failed. Could someone help me ?
I checked out the code:
c:\Program Files (x86)\Apache-Subversion-1.7.5\bin\svn.exe" co http://anonsvn.jboss.org/repos/jbossas/projects/jboss-cl/tags/2.0.9.GA 2.0.9.GA
And tried to compile:
mvn clean install
And got what I didn't understand:
[INFO] Scanning for projects...
[INFO] Reactor build order:
[INFO] JBoss ClassLoader Parent POM
[INFO] JBoss ClassLoader
[INFO] JBoss ClassLoading
[INFO] JBoss ClassLoading VFS
[INFO] JBoss ClassLoader Distribution Build
[INFO] ------------------------------------------------------------------------
[INFO] Building JBoss ClassLoader Parent POM
[INFO] task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] [enforcer:enforce {execution: enforce-plugin-versions}]
[INFO] [enforcer:enforce {execution: enforce-java-version}]
[INFO] [enforcer:enforce {execution: enforce-maven-version}]
[INFO] [site:attach-descriptor {execution: default-attach-descriptor}]
[INFO] [source:jar-no-fork {execution: attach-sources}]
[INFO] [install:install {execution: default-install}]
[INFO] Installing C:\Users\Lionel\Documents\Dev\JBOSS_CL\2.
0.9.GA\pom.xml to C:\Users\Lionel\Documents\M2_REPO\reposit
ory\org\jboss\cl\jboss-cl\2.0.9.GA\jboss-cl-2.0.9.GA.pom
[INFO] ------------------------------------------------------------------------
[INFO] Building JBoss ClassLoader
[INFO] task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting file set: C:\Users\Lionel\Documents\Dev\JBO
SS_CL\2.0.9.GA\classloader\target (included: [**], excluded: [])
[INFO] [enforcer:enforce {execution: enforce-plugin-versions}]
[INFO] [enforcer:enforce {execution: enforce-java-version}]
[INFO] [enforcer:enforce {execution: enforce-maven-version}]
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\Lionel\Documents\
Dev\JBOSS_CL\2.0.9.GA\classloader\src\main\resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Compiling 52 source files to C:\Users\Lionel\Documents\
Dev\JBOSS_CL\2.0.9.GA\classloader\target\classes
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
could not parse error message: warning: [options] bootstrap class path not set i
n conjunction with -source 1.5
C:\Users\Lionel\Documents\Dev\JBOSS_CL\2.0.9.GA\classloader
\src\main\java\org\jboss\classloader\spi\base\BaseClassLoader.java:115: warning:
[deprecation] isDebugEnabled() in Logger has been deprecated
if (log.isDebugEnabled())
^
C:\Users\Lionel\DocumentsDev\JBOSS_CL\2.0.9.GA\classloader
\src\main\java\org\jboss\classloader\test\support\IsolatedClassLoaderTest.java:[
61,22] error: name clash: suite(Class<?>) in IsolatedClassLoaderTest and suite(C
lass) in AbstractTestCaseWithSetup have the same erasure, yet neither hides the
other
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5 seconds
[INFO] Finished at: Wed Jul 04 21:02:32 CEST 2012
[INFO] Final Memory: 32M/342M
[INFO] ------------------------------------------------------------------------
Thanks for help.
Lionel