[ http://issues.apache.org/jira/browse/TAPESTRY-408?page=comments#action_12316464 ]
Howard M. Lewis Ship commented on TAPESTRY-408: ----------------------------------------------- This looks easy enough; the code is invoking Ognl.isConstant() without providing an context Map (from which the OGNL class resolver is determined). Using the default class resolver is insufficient; it should pass in a map with the same class resolver used when reading/updating properties (which is based on the Thread's contextClassLoader). > OGNL can't access a static field in a class in the webapp context > ----------------------------------------------------------------- > > Key: TAPESTRY-408 > URL: http://issues.apache.org/jira/browse/TAPESTRY-408 > Project: Tapestry > Type: Bug > Components: Framework > Versions: 4.0 > Environment: Windows XP > Reporter: Kent Tong > Assignee: Howard M. Lewis Ship > > 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:@[EMAIL PROTECTED]"/> > </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) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
