Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
4.1.3
-
None
-
None
-
JBoss 4.2.x, Tapestry 4.1.3, MySQL5
Description
I have an enterprise Java Bean which feeds multiple tapestry apps. I can open a session on two apps but when I open a second session on one of them and enter on a page not previously loaded (in the first session) I get:
On browser:
java.lang.NullPointerException
$ExceptionDisplay_50.getClientId($ExceptionDisplay_50.java)
org.apache.tapestry.AbstractComponent.hashCode(AbstractComponent.java:917)
java.lang.Object.toString(Object.java:219)
org.apache.tapestry.AbstractComponent.toString(AbstractComponent.java:564)
org.apache.tapestry.util.exception.ExceptionAnalyzer.buildDescription(ExceptionAnalyzer.java:184)
org.apache.tapestry.util.exception.ExceptionAnalyzer.analyze(ExceptionAnalyzer.java:93)
org.apache.tapestry.util.exception.ExceptionAnalyzer.reportException(ExceptionAnalyzer.java:379)
org.apache.tapestry.ApplicationServlet.show(ApplicationServlet.java:158)
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:132)
org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:103)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
On JBoss Console I get a thousand of stack traces (sometimes infinite), being the most relevant:
First Stack Trace:
12:02:58,171 ERROR [HiveMindExpressionCompiler] Error generating OGNL getter for expression @com.indra.localiza.Restriction@hasPermission(sessionDescriptor.leve
l, @com.indra.localiza.Restriction@ICON) with root $GestorIcons_46@3c1[GestorIcons] and body:
org.apache.hivemind.ApplicationRuntimeException: Unable to add method java.lang.Object get(ognl.OgnlContext, java.lang.Object) to class $ASTStaticMethod_1178767
42ab: [source error] no such class: $GestorIcons_46
at org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:278)
at org.apache.tapestry.services.impl.HiveMindExpressionCompiler.compileExpression(HiveMindExpressionCompiler.java:176)
at ognl.OgnlRuntime.compileExpression(OgnlRuntime.java:523)
at ognl.Ognl.compileExpression(Ognl.java:141)
at org.apache.tapestry.services.impl.ExpressionCacheImpl.parse(ExpressionCacheImpl.java:152)
at org.apache.tapestry.services.impl.ExpressionCacheImpl.getCompiledExpression(ExpressionCacheImpl.java:115)
at $ExpressionCache_11787674066.getCompiledExpression($ExpressionCache_11787674066.java)
at org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:134)
at org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:125)
at org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84)
at org.apache.tapestry.enhance.EnhanceUtils.toBoolean(EnhanceUtils.java:173)
at $IfBean_5.getCondition($IfBean_5.java)
at org.apache.tapestry.components.IfBean.evaluateCondition(IfBean.java:128)
at org.apache.tapestry.components.IfBean.renderComponent(IfBean.java:66)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:179)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)
at org.apache.tapestry.html.Body.renderComponent(Body.java:38)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:179)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:177)
at org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:249)
at org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:397)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.renderResponse(DefaultResponseBuilder.java:151)
at org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse(ResponseRendererImpl.java:33)
at $ResponseRenderer_11787673da3.renderResponse($ResponseRenderer_11787673da3.java)
at org.apache.tapestry.engine.DirectService.service(DirectService.java:147)
at $IEngineService_11787673fb6.service($IEngineService_11787673fb6.java)
at org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:72)
at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:241)
at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:54)
at $WebRequestServicer_11787673f8d.service($WebRequestServicer_11787673f8d.java)
at $WebRequestServicer_11787673f89.service($WebRequestServicer_11787673f89.java)
at org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:61)
at $ServletRequestServicer_11787673f6f.service($ServletRequestServicer_11787673f6f.java)
at org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
at $ServletRequestServicerFilter_11787673f6b.service($ServletRequestServicerFilter_11787673f6b.java)
at $ServletRequestServicer_11787673f71.service($ServletRequestServicer_11787673f71.java)
at org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
at $ServletRequestServicerFilter_11787673f69.service($ServletRequestServicerFilter_11787673f69.java)
at $ServletRequestServicer_11787673f71.service($ServletRequestServicer_11787673f71.java)
at org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
at $ServletRequestServicerFilter_11787673f6d.service($ServletRequestServicerFilter_11787673f6d.java)
at $ServletRequestServicer_11787673f71.service($ServletRequestServicer_11787673f71.java)
at $ServletRequestServicer_11787673dcf.service($ServletRequestServicer_11787673dcf.java)
at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:126)
at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:103)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
In the Middle:
(This one repeats several times)
Caused by: javassist.CannotCompileException: [source error] no such class: $Exception_47
at javassist.CtBehavior.setBody(CtBehavior.java:367)
at javassist.CtBehavior.setBody(CtBehavior.java:334)
at org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:272)
... 69 more
12:02:59,453 ERROR [HiveMindExpressionCompiler] Error generating OGNL getter for expression exceptions with root $ExceptionDisplay_50@6482ee45[framework:Excepti
on/$ExceptionDisplay] and body:
org.apache.hivemind.ApplicationRuntimeException: Unable to add method java.lang.Object get(ognl.OgnlContext, java.lang.Object) to class $ASTProperty_117876742b3
: [source error] no such class: $ExceptionDisplay_50
at org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:278)
at org.apache.tapestry.services.impl.HiveMindExpressionCompiler.compileExpression(HiveMindExpressionCompiler.java:176)
at ognl.OgnlRuntime.compileExpression(OgnlRuntime.java:523)
at ognl.Ognl.compileExpression(Ognl.java:141)
at org.apache.tapestry.services.impl.ExpressionCacheImpl.parse(ExpressionCacheImpl.java:152)
at org.apache.tapestry.services.impl.ExpressionCacheImpl.getCompiledExpression(ExpressionCacheImpl.java:115)
at $ExpressionCache_11787674066.getCompiledExpression($ExpressionCache_11787674066.java)
at org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:134)
at org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:125)
at org.apache.tapestry.components.ForBean.evaluateSourceIterator(ForBean.java:693)
at org.apache.tapestry.components.ForBean.getData(ForBean.java:326)
So it fails: Tapestry, Hivemind, OGNL, JavaAssist ...
The only solution I got so far is have a JBoss instance for each WebApp...