Long class names missed by LoadMgr3 - short names work
randahl Jun 6, 2005 1:29 PMI am running MyFaces on Tomcat 5 inside JBoss 4, and I have now encountered a really strange class loading problem. When I deploy a class named
dk.rockit.puls.web.rendering.browserXhtml.layout.DivisiLayoutInfo
the class is picked up fine but if I rename it to
dk.rockit.puls.web.rendering.browserXhtml.layout.DivisioLayoutInfo
or anything longer than that an exception is thrown.
Now, I do not believe in magic, so I have tested this quite thoroughly, and it is consistent - whenever the class name exceeds 66 characters in length the LoadMgr3 throws a class not found exception, and if I rename my class to any short name no exception is thrown.
The error only occurs in my web module. I am using this class loader configuration for the EAR in which the web module's WAR resides:
<jboss-app>
<loader-repository>
dot.com:loader=rockit-web.ear
<loader-repository-config>
java2ParentDelegation=false
</loader-repository-config>
</loader-repository>
</jboss-app>
Below you will find the stack trace I encounter. If anyone has a clue to what could be wrong I would be grateful.
Randahl
Caused by: java.lang.ClassNotFoundException: No ClassLoaders found for: dk.rocki
t.puls.web.rendering.browserXhtml.layout.DivisionLayoutInfo
at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:292)
at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryCl
assLoader.java:464)
at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassL
oader.java:374)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at org.apache.myfaces.util.ClassUtils.classForName(ClassUtils.java:175)
at org.apache.myfaces.util.ClassUtils.simpleClassForName(ClassUtils.java
:194)
... 79 more
19:04:25,703 ERROR [Engine] ApplicationDispatcher[] Servlet.service() for servle
t jsp threw exception
javax.faces.el.EvaluationException: Expression: '#{divisionLayoutInfo.title}'
at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java
:466)
at javax.faces.component.UIOutput.getValue(UIOutput.java:75)
at org.apache.myfaces.renderkit.RendererUtils.getStringValue(RendererUti
ls.java:296)
at org.apache.myfaces.renderkit.html.HtmlTextRendererBase.renderOutput(H
tmlTextRendererBase.java:93)
at org.apache.myfaces.renderkit.html.HtmlTextRendererBase.encodeEnd(Html
TextRendererBase.java:81)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:
341)
at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:386)
at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:290)
at org.apache.jsp.puls.rendering.division_002dlayout_jspx._jspx_meth_h_o
utputText_0(division_002dlayout_jspx.java:149)
at org.apache.jsp.puls.rendering.division_002dlayout_jspx._jspx_meth_f_v
iew_0(division_002dlayout_jspx.java:111)
at org.apache.jsp.puls.rendering.division_002dlayout_jspx._jspService(di
vision_002dlayout_jspx.java:61)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:2
92)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDisp
atcher.java:704)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(Applica
tionDispatcher.java:474)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationD
ispatcher.java:409)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDis
patcher.java:312)
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatc
h(ServletExternalContextImpl.java:405)
at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspV
iewHandlerImpl.java:280)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:
300)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:110)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDisp
atcher.java:704)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(Applica
tionDispatcher.java:474)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationD
ispatcher.java:409)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDis
patcher.java:312)
at dk.rockit.puls.web.rendering.browserXhtml.BrowserXhtmlRenderer.render
(BrowserXhtmlRenderer.java:74)
at dk.rockit.puls.web.rendering.Renderers.render(Renderers.java:39)
at dk.rockit.puls.web.PulsDispatcher.dispatch(PulsDispatcher.java:100)
at dk.rockit.puls.web.gatekeeper.Gatekeeper.dispatch(Gatekeeper.java:66)
at dk.rockit.puls.web.PulsFilter.doFilter(PulsFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi
lter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrinc
ipalValve.java:66)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
yAssociationValve.java:150)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv
e.java:54)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
535)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
0)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:683)
at java.lang.Thread.run(Thread.java:595)
Caused by: javax.faces.FacesException: java.lang.ClassNotFoundException: No Clas
sLoaders found for: dk.rockit.puls.web.rendering.browserXhtml.layout.DivisionLay
outInfo
at org.apache.myfaces.util.ClassUtils.simpleClassForName(ClassUtils.java
:199)
at org.apache.myfaces.util.ClassUtils.newInstance(ClassUtils.java:278)
at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(Managed
BeanBuilder.java:57)
at org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableRe
solverImpl.java:328)
at org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVari
able(ValueBindingImpl.java:637)
at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140)
at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java
:441)