Description
I have a class com.ttdev.shop.ProductDetails in my webapp's context and all the tapestry and related jar files (including ognl.jar) in Tomcat's share lib folder. In this setup, OGNL fails when evaluating the following expression:
<component id="print" type="Insert">
<binding name="value" value="ognl:@com.ttdev.shop.ProductDetails@CONTINUE_SHOPPING_BUTTON"/>
</component>
This problem is most likely related to the bug tapestry-142. Below is the stack trace:
- ognl.ASTStaticField.isNodeConstant(ASTStaticField.java:80)
- ognl.SimpleNode.isConstant(SimpleNode.java:270)
- ognl.Ognl.isConstant(Ognl.java:536)
- ognl.Ognl.isConstant(Ognl.java:546)
- org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.isConstant(ExpressionEvaluatorImpl.java:130)
- $ExpressionEvaluator_1051f9293d2.isConstant($ExpressionEvaluator_1051f9293d2.java)
- org.apache.tapestry.binding.ExpressionBinding.initialize(ExpressionBinding.java:145)
- org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:101)
- org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:87)
- $Insert_70.getValue($Insert_70.java)
- org.apache.tapestry.components.Insert.renderComponent(Insert.java:42)
- org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:612)
- org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
- org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:612)
- org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:274)
- org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:355)
- org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse(ResponseRendererImpl.java:71)
- $ResponseRenderer_1051f9292ef.renderResponse($ResponseRenderer_1051f9292ef.java)
- org.apache.tapestry.engine.HomeService.service(HomeService.java:65)
- $IEngineService_1051f929354.service($IEngineService_1051f929354.java)
- org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:65)
- org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:241)
- org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
- $WebRequestServicer_1051f929335.service($WebRequestServicer_1051f929335.java)
- org.apache.tapestry.services.impl.DisableCachingFilter.service(DisableCachingFilter.java:48)
- $WebRequestServicerFilter_1051f929337.service($WebRequestServicerFilter_1051f929337.java)
- $WebRequestServicer_1051f929339.service($WebRequestServicer_1051f929339.java)
- $WebRequestServicer_1051f929331.service($WebRequestServicer_1051f929331.java)
- org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56)
- $ServletRequestServicer_1051f929315.service($ServletRequestServicer_1051f929315.java)
- org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
- $ServletRequestServicerFilter_1051f929311.service($ServletRequestServicerFilter_1051f929311.java)
- $ServletRequestServicer_1051f929317.service($ServletRequestServicer_1051f929317.java)
- org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
- $ServletRequestServicerFilter_1051f92930f.service($ServletRequestServicerFilter_1051f92930f.java)
- $ServletRequestServicer_1051f929317.service($ServletRequestServicer_1051f929317.java)
- org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
- $ServletRequestServicerFilter_1051f929313.service($ServletRequestServicerFilter_1051f929313.java)
- $ServletRequestServicer_1051f929317.service($ServletRequestServicer_1051f929317.java)
- $ServletRequestServicer_1051f929309.service($ServletRequestServicer_1051f929309.java)
- org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:145)
- org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:101)
- javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
- javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
- org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
- org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
- org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
- org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
- org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
- org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
- org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
- org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
- org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
- org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
- org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
- org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
- org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
- java.lang.Thread.run(Thread.java:595)
Attachments
Issue Links
- is duplicated by
-
TAPESTRY-297 ExpressionEvaluatorImpl.isConstant should use context class loader
- Resolved
- relates to
-
TAPESTRY-142 NPE as follow-up to a ClassNotFoundException caused by a wrongly stuffed OGNL context
- Resolved