Hard to say. JIRA will help me look at it closer when I have more time.
On 1/30/07, Robert J. Walker <[EMAIL PROTECTED]> wrote:
I've run into an interesting issue with a page that worked in Tapestry 3.1 that now has a problem in Tapestry 4.1. The first time I arrive at a page via a DirectLink that has a contrib:Table on it, it works fine, but if I click the back button and then link to the page again, it complains of a NullPointerException while trying to read the OGNL expression tableColumnIterator on line 51 of TableColumns.jwc. Interestingly, this *doesn't* happen if you turn off page caching. java.lang.NullPointerException Stack Trace: * org.apache.tapestry.contrib.table.components.AbstractTableViewComponent.getTableModelSource(AbstractTableViewComponent.java:35) * org.apache.tapestry.contrib.table.components.TableColumns.getTableColumnIterator(TableColumns.java:95) * sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) * sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) * sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) * java.lang.reflect.Method.invoke(Method.java:585) * ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:491) * ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:904) * ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:54) * ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:122) * ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1616) * ognl.ASTProperty.getValueBody(ASTProperty.java:96) * ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170) * ognl.SimpleNode.getValue(SimpleNode.java:210) * ognl.Ognl.getValue(Ognl.java:333) * ognl.Ognl.getValue(Ognl.java:310) * org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.readCompiled(ExpressionEvaluatorImpl.java:102) * $ExpressionEvaluator_1107562b92d.readCompiled($ExpressionEvaluator_1107562b92d.java) * org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:110) * org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:103) * org.apache.tapestry.components.ForBean.evaluateSourceIterator(ForBean.java:603) * org.apache.tapestry.components.ForBean.getData(ForBean.java:252) * org.apache.tapestry.components.ForBean.renderComponent(ForBean.java:107) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92) * org.apache.tapestry.contrib.table.components.TableColumns.renderComponent(TableColumns.java:145) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491) * org.apache.tapestry.components.Any.renderComponent(Any.java:50) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491) * org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:41) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491) * org.apache.tapestry.components.Any.renderComponent(Any.java:50) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92) * org.apache.tapestry.contrib.table.components.TableView.renderComponent(TableView.java:524) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491) * org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:41) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491) * org.apache.tapestry.components.Any.renderComponent(Any.java:50) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491) * org.apache.tapestry.components.IfBean.renderComponent(IfBean.java:86) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491) * org.apache.tapestry.form.FormSupportImpl.render(FormSupportImpl.java:495) * org.apache.tapestry.form.Form.renderComponent(Form.java:219) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491) * org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:41) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491) * org.apache.tapestry.components.Any.renderComponent(Any.java:50) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491) * org.apache.tapestry.components.Any.renderComponent(Any.java:50) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491) * org.apache.tapestry.html.Body.renderComponent(Body.java:160) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491) * org.apache.tapestry.html.Shell.renderComponent(Shell.java:123) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131) * org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92) * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:674) * org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:129) * org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:250) * org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:338) * org.apache.tapestry.services.impl.DefaultResponseBuilder.renderResponse(DefaultResponseBuilder.java:117) * org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse(ResponseRendererImpl.java:33) * $ResponseRenderer_1107562b827.renderResponse($ResponseRenderer_1107562b827.java) * org.apache.tapestry.engine.DirectService.service(DirectService.java:150) * $IEngineService_1107562b893.service($IEngineService_1107562b893.java) * org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:72) * org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:241) * org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60) * $WebRequestServicer_1107562b86f.service($WebRequestServicer_1107562b86f.java) * $WebRequestServicer_1107562b86b.service($WebRequestServicer_1107562b86b.java) * org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56) * $ServletRequestServicer_1107562b851.service($ServletRequestServicer_1107562b851.java) * org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55) * $ServletRequestServicerFilter_1107562b84d.service($ServletRequestServicerFilter_1107562b84d.java) * $ServletRequestServicer_1107562b853.service($ServletRequestServicer_1107562b853.java) * org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52) * $ServletRequestServicerFilter_1107562b84b.service($ServletRequestServicerFilter_1107562b84b.java) * $ServletRequestServicer_1107562b853.service($ServletRequestServicer_1107562b853.java) * org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53) * $ServletRequestServicerFilter_1107562b84f.service($ServletRequestServicerFilter_1107562b84f.java) * $ServletRequestServicer_1107562b853.service($ServletRequestServicer_1107562b853.java) * $ServletRequestServicer_1107562b845.service($ServletRequestServicer_1107562b845.java) * org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123) * org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:104) * 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.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174) * org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) * org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) * org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) * org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) * 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:856) * org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) * org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) * 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) Looking at line 35 of AbstractTableViewComponent seems to indicate that the request cycle is null, which seems odd to me considering that the RequestCycle class itself is further up the call stack. Any ideas as to what's going on here? Robert J. Walker --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Jesse Kuhnert Tapestry/Dojo team member/developer Open source based consulting work centered around dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]