Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
5.2
-
None
Description
Had an exception on the page, but the ExceptionReport failed; from the console I could see why:
org.apache.tapestry5.ioc.internal.util.TapestryException [at classpath:org/apache/tapestry5/corelib/pages/ExceptionReport.tml, line 32]
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:948)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$400(ComponentPageElementImpl.java:49)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.callback(ComponentPageElementImpl.java:159)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$BeginRenderPhase.render(ComponentPageElementImpl.java:211)
at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:74)
at org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121)
at $PageRenderQueue_125e1729db5.render($PageRenderQueue_125e1729db5.java)
at $PageRenderQueue_125e1729db4.render($PageRenderQueue_125e1729db4.java)
at org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37)
at org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1748)
at $MarkupRenderer_125e1729db7.renderMarkup($MarkupRenderer_125e1729db7.java)
at org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1732)
at $MarkupRenderer_125e1729db7.renderMarkup($MarkupRenderer_125e1729db7.java)
at org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1714)
at $MarkupRenderer_125e1729db7.renderMarkup($MarkupRenderer_125e1729db7.java)
at org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1700)
at $MarkupRenderer_125e1729db7.renderMarkup($MarkupRenderer_125e1729db7.java)
at org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1681)
at $MarkupRenderer_125e1729db7.renderMarkup($MarkupRenderer_125e1729db7.java)
at org.apache.tapestry5.services.TapestryModule$22.renderMarkup(TapestryModule.java:1662)
at $MarkupRenderer_125e1729db7.renderMarkup($MarkupRenderer_125e1729db7.java)
at $MarkupRenderer_125e1729db3.renderMarkup($MarkupRenderer_125e1729db3.java)
at org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
at $PageMarkupRenderer_125e1729daf.renderPageMarkup($PageMarkupRenderer_125e1729daf.java)
at org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:61)
at $PageResponseRenderer_125e1729d87.renderPageResponse($PageResponseRenderer_125e1729d87.java)
at org.apache.tapestry5.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:77)
at $RequestExceptionHandler_125e1729d2e.handleRequestException($RequestExceptionHandler_125e1729d2e.java)
at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:42)
at $RequestHandler_125e1729d30.service($RequestHandler_125e1729d30.java)
at org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:778)
at $RequestHandler_125e1729d30.service($RequestHandler_125e1729d30.java)
at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:767)
at $RequestHandler_125e1729d30.service($RequestHandler_125e1729d30.java)
at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
at $RequestHandler_125e1729d30.service($RequestHandler_125e1729d30.java)
at org.apache.tapestry5.internal.services.URLRewriterRequestFilter.service(URLRewriterRequestFilter.java:47)
at $RequestHandler_125e1729d30.service($RequestHandler_125e1729d30.java)
at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81)
at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
at $RequestHandler_125e1729d30.service($RequestHandler_125e1729d30.java)
at $RequestHandler_125e1729d26.service($RequestHandler_125e1729d26.java)
at org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:197)
at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
at $HttpServletRequestHandler_125e1729d28.service($HttpServletRequestHandler_125e1729d28.java)
at org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
at $HttpServletRequestHandler_125e1729d28.service($HttpServletRequestHandler_125e1729d28.java)
at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
at $HttpServletRequestFilter_125e1729d25.service($HttpServletRequestFilter_125e1729d25.java)
at $HttpServletRequestHandler_125e1729d28.service($HttpServletRequestHandler_125e1729d28.java)
at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:726)
at $HttpServletRequestHandler_125e1729d28.service($HttpServletRequestHandler_125e1729d28.java)
at $HttpServletRequestHandler_125e1729d0d.service($HttpServletRequestHandler_125e1729d0d.java)
at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at collective.servlet.LogbackMdcFilter.doFilter(LogbackMdcFilter.java:65)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:722)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:404)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
Caused by: java.lang.NullPointerException
at collective.instance.RegistrationRequest.toString(RegistrationRequest.java:68)
at java.lang.String.valueOf(String.java:2826)
at org.apache.tapestry5.services.TapestryModule$20.render(TapestryModule.java:1586)
at $ObjectRenderer_125e1729dba.render($ObjectRenderer_125e1729dba.java)
at $ObjectRenderer_125e1729d8d.render($ObjectRenderer_125e1729d8d.java)
at org.apache.tapestry5.corelib.components.RenderObject.beginRender(RenderObject.java:40)
at org.apache.tapestry5.corelib.components.RenderObject.beginRender(RenderObject.java)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$BeginRenderPhase.invokeComponent(ComponentPageElementImpl.java:206)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:933)
The RegistrationRequest object was session persisted, but its toString() was a bit sloppy and threw an NPE.
It would be much nicer if Object class adapter for ObjectRenderer caught exceptions when invoking toString(), and displayed a summary of the exception and identified the class name, rather than blowing up the ExceptionReport render.