[jboss-jira] [JBoss JIRA] Assigned: (JBAS-9211) java.lang.NoClassDefFoundError: test/n (wrong name: test/N)
Ales Justin (JIRA)
jira-events at lists.jboss.org
Tue May 10 10:36:19 EDT 2011
[ https://issues.jboss.org/browse/JBAS-9211?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ales Justin reassigned JBAS-9211:
---------------------------------
Assignee: Ales Justin (was: Scott Stark)
> java.lang.NoClassDefFoundError: test/n (wrong name: test/N)
> -----------------------------------------------------------
>
> Key: JBAS-9211
> URL: https://issues.jboss.org/browse/JBAS-9211
> Project: Legacy JBoss Application Server 6
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: ClassLoading
> Affects Versions: 6.0.0.M3, 6.0.0.Final
> Environment: JBoss 6.0.0.Final, Red Hat Enterprise Linux Server release 5.5 (Tikanga)
> Linux 2.6.18-194.el5 #1 SMP x86_64 x86_64 x86_64 GNU/Linux
> Reporter: miguel cheng
> Assignee: Ales Justin
> Priority: Critical
> Fix For: 6.1.0
>
> Attachments: JBAS8408.war
>
>
> When a jar file in the WEB-INF/lib folder contains a classname with different case. For example, test/N.class and test/n.class.
> JBoss AS can load the test/N.class but not test/n.class. Once construct the "test.n" object. NoClassDefFoundError will be thrown as follows:
> 13:52:17,864 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/JBAS8408].[JBAS8408Servlet]] Servlet.service() for servlet JBAS8408Servlet threw exception: java.lang.NoClassDefFoundError: test/n (wrong name: test/N)
> at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_22]
> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) [:1.6.0_22]
> at java.lang.ClassLoader.defineClass(ClassLoader.java:616) [:1.6.0_22]
> at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:52) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:650) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:609) [jboss-classloader.jar:2.2.0.GA]
> at java.security.AccessController.doPrivileged(Native Method) [:1.6.0_22]
> at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:608) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:585) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:156) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.filter.FilteredDelegateLoader.doLoadClass(FilteredDelegateLoader.java:141) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:132) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:461) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:262) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:161) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:260) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1152) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:886) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.base.BaseClassLoader.doLoadClass(BaseClassLoader.java:505) [jboss-classloader.jar:2.2.0.GA]
> at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:450) [jboss-classloader.jar:2.2.0.GA]
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248) [:1.6.0_22]
> at test.JBAS8408Servlet.doGet(JBAS8408Servlet.java:14) [:]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) [:1.0.0.Final]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Final]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:6.0.0.Final]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.Final]
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:6.0.0.Final]
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [:6.0.0.Final]
> at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.0.0.Final]
> at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.Final]
> at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.Final]
> at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.0.0.Final]
> at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.0.0.Final]
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [:6.0.0.Final]
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.0.0.Final]
> at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) [:6.0.0.Final]
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.0.0.Final]
> at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.0.0.Final]
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.0.0.Final]
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.0.0.Final]
> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) [:6.0.0.Final]
> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.0.0.Final]
> at java.lang.Thread.run(Thread.java:662) [:1.6.0_22]
> In Linux, we can extract the library jar manually to the WEB-INF/classes folder. As such, the Class with the same name but in different case can be loaded properly.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list