Uploaded image for project: 'Tapestry'
  1. Tapestry
  2. TAPESTRY-2055

Problem when running 2+ tapestry web apps in same application server

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 4.1.3
    • 4.1.7
    • 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:

      { return ($w) (com.indra.localiza.Restriction#hasPermission((($GestorIcons_46)$2).getSessionDescriptor().getLevel(), com.indra.localiza.Restriction.ICON));}

      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:

      { return (($ExceptionDisplay_50)$2).getExceptions();}

      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...

      Attachments

        Activity

          People

            jkuhnert Jesse Kuhnert
            gotilio Eduardo Magdalena
            Votes:
            2 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: