commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Simon Kitching (JIRA)" <j...@apache.org>
Subject [jira] Commented: (BETWIXT-57) Class loader problem in JBoss version 4.0.4GA
Date Sat, 13 Jan 2007 06:37:27 GMT

    [ https://issues.apache.org/jira/browse/BETWIXT-57?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12464413
] 

Simon Kitching commented on BETWIXT-57:
---------------------------------------

Ok, I've made this default to "true". I've also ensured that when set to false, lookup is
relative to the classloader that loaded Betwixt, not the one that loaded Digester. See r495842,
r495843.

> Class loader problem in JBoss version 4.0.4GA
> ---------------------------------------------
>
>                 Key: BETWIXT-57
>                 URL: https://issues.apache.org/jira/browse/BETWIXT-57
>             Project: Commons Betwixt
>          Issue Type: Bug
>         Environment: JBoss application server version 4.0.4GA. Probably affects most
versions of JBoss
>            Reporter: Surjit Sen
>            Priority: Critical
>
> When using betwixt in a JBoss application, "Class not found" exceptions get thrown when
Class.forName methods are called in classes org.apache.commons.betwixt.digester.ElementRule
and org.apache.commons.betwixt.digester.ClassRule. Specifically the Class.forName method uses
the system class loader to load classes and in JBoss the classpath normally does not contain
the application jar files. The fix is very simple. The Class.forName method calls in both
the classes were replaced with the following code lines in ElementRule and similar changes
were made in ClassRule as well. This fix ensures that the appropriate class loader is used
for loading classes and is similar to the fix made in log4j.
>                 ClassLoader loader = Thread.currentThread().getContextClassLoader();
>                 if (loader == null) {
>                 	loader = Class.forName(implementationClass).getClassLoader();
>                     //Class clazz = Class.forName(implementationClass);
>                 }
>                 Class clazz = loader.loadClass(implementationClass);
>                 descriptor.setImplementationClass(clazz);

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message