[ 
https://issues.apache.org/jira/browse/TAP5-964?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Howard M. Lewis Ship reassigned TAP5-964:
-----------------------------------------

    Assignee: Howard M. Lewis Ship

> Exception report failed to render due to NPE inside session-persisted 
> objects' toString()
> -----------------------------------------------------------------------------------------
>
>                 Key: TAP5-964
>                 URL: https://issues.apache.org/jira/browse/TAP5-964
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.2
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to