You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Tom Davies (JIRA)" <ta...@jakarta.apache.org> on 2007/02/27 23:49:05 UTC

[jira] Created: (TAPESTRY-1308) Exceptions while building services are poorly reported

Exceptions while building services are poorly reported
------------------------------------------------------

                 Key: TAPESTRY-1308
                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1308
             Project: Tapestry
          Issue Type: Improvement
          Components: IoC Container
    Affects Versions: 5.0
            Reporter: Tom Davies


Take the sample app built by tapestry-simple, and change buildTimingFilter to:

    public RequestFilter buildTimingFilter(final Log log, final @InjectService("Test") Object test)

... body unchanged ...

Add:

public static Object buildTest()
    {
        throw new RuntimeException("Bang");
    }

When you run this, you get a 500 page:

HTTP ERROR: 500

INTERNAL_SERVER_ERROR
RequestURI=/myapp/start

Caused by:

java.lang.NullPointerException
	at $Request_1110563691a.getContextPath($Request_1110563691a.java)
	at $Request_111056368ca.getContextPath($Request_111056368ca.java)
	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:34)
	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:24)
	at $ObjectRenderer_11105636919.render($ObjectRenderer_11105636919.java)
	at $ObjectRenderer_111056368c7.render($ObjectRenderer_111056368c7.java)
	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java:37)
	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java)
	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10$1.run(ComponentPageElementImpl.java:334)
	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:931)
	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.access$100(ComponentPageElementImpl.java:68)
	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10.render(ComponentPageElementImpl.java:338)
	at org.apache.tapestry.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:57)
	at org.apache.tapestry.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:40)
	at $PageMarkupRenderer_11105636915.renderPageMarkup($PageMarkupRenderer_11105636915.java)
	at org.apache.tapestry.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:45)
	at $PageResponseRenderer_111056368da.renderPageResponse($PageResponseRenderer_111056368da.java)
	at org.apache.tapestry.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:56)
	at $RequestExceptionHandler_111056368b1.handleRequestException($RequestExceptionHandler_111056368b1.java)
	at org.apache.tapestry.services.TapestryModule$6.service(TapestryModule.java:523)
	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
	at org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:56)
	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
	at org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43)
	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:91)
	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:82)
	at org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
	at org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:104)
	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
	at $RequestHandler_111056368e8.service($RequestHandler_111056368e8.java)
	at org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:402)
	at $HttpServletRequestHandler_111056368e7.service($HttpServletRequestHandler_111056368e7.java)
	at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:114)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:690)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:401)
	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
	at org.mortbay.jetty.Server.handle(Server.java:285)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)

The logs are no more informative.


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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


[jira] Commented: (TAPESTRY-1308) Exceptions while building services are poorly reported

Posted by "Tom Davies (JIRA)" <ta...@jakarta.apache.org>.
    [ https://issues.apache.org/jira/browse/TAPESTRY-1308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12476747 ] 

Tom Davies commented on TAPESTRY-1308:
--------------------------------------

A reasonable solution would be to log the exception at the start of DefaultRequestExceptionHandler.handleRequestException -- otherwise it gets completely lost.

> Exceptions while building services are poorly reported
> ------------------------------------------------------
>
>                 Key: TAPESTRY-1308
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1308
>             Project: Tapestry
>          Issue Type: Improvement
>          Components: IoC Container
>    Affects Versions: 5.0
>            Reporter: Tom Davies
>         Attachments: log.txt
>
>
> Take the sample app built by tapestry-simple, and change buildTimingFilter to:
>     public RequestFilter buildTimingFilter(final Log log, final @InjectService("Test") Object test)
> ... body unchanged ...
> Add:
> public static Object buildTest()
>     {
>         throw new RuntimeException("Bang");
>     }
> When you run this, you get a 500 page:
> HTTP ERROR: 500
> INTERNAL_SERVER_ERROR
> RequestURI=/myapp/start
> Caused by:
> java.lang.NullPointerException
> 	at $Request_1110563691a.getContextPath($Request_1110563691a.java)
> 	at $Request_111056368ca.getContextPath($Request_111056368ca.java)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:34)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:24)
> 	at $ObjectRenderer_11105636919.render($ObjectRenderer_11105636919.java)
> 	at $ObjectRenderer_111056368c7.render($ObjectRenderer_111056368c7.java)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java:37)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10$1.run(ComponentPageElementImpl.java:334)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:931)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.access$100(ComponentPageElementImpl.java:68)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10.render(ComponentPageElementImpl.java:338)
> 	at org.apache.tapestry.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:57)
> 	at org.apache.tapestry.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:40)
> 	at $PageMarkupRenderer_11105636915.renderPageMarkup($PageMarkupRenderer_11105636915.java)
> 	at org.apache.tapestry.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:45)
> 	at $PageResponseRenderer_111056368da.renderPageResponse($PageResponseRenderer_111056368da.java)
> 	at org.apache.tapestry.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:56)
> 	at $RequestExceptionHandler_111056368b1.handleRequestException($RequestExceptionHandler_111056368b1.java)
> 	at org.apache.tapestry.services.TapestryModule$6.service(TapestryModule.java:523)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:56)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:91)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:82)
> 	at org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:104)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at $RequestHandler_111056368e8.service($RequestHandler_111056368e8.java)
> 	at org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:402)
> 	at $HttpServletRequestHandler_111056368e7.service($HttpServletRequestHandler_111056368e7.java)
> 	at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:114)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
> 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:690)
> 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:401)
> 	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
> 	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> 	at org.mortbay.jetty.Server.handle(Server.java:285)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
> 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
> The logs are no more informative.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


[jira] Updated: (TAPESTRY-1308) Exceptions while building services are poorly reported

Posted by "Tom Davies (JIRA)" <ta...@jakarta.apache.org>.
     [ https://issues.apache.org/jira/browse/TAPESTRY-1308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tom Davies updated TAPESTRY-1308:
---------------------------------

    Attachment: tapestry-1308.patch

Patch which logs original exception iff the error page can't be displayed

> Exceptions while building services are poorly reported
> ------------------------------------------------------
>
>                 Key: TAPESTRY-1308
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1308
>             Project: Tapestry
>          Issue Type: Improvement
>          Components: IoC Container
>    Affects Versions: 5.0
>            Reporter: Tom Davies
>         Attachments: log.txt, tapestry-1308.patch
>
>
> Take the sample app built by tapestry-simple, and change buildTimingFilter to:
>     public RequestFilter buildTimingFilter(final Log log, final @InjectService("Test") Object test)
> ... body unchanged ...
> Add:
> public static Object buildTest()
>     {
>         throw new RuntimeException("Bang");
>     }
> When you run this, you get a 500 page:
> HTTP ERROR: 500
> INTERNAL_SERVER_ERROR
> RequestURI=/myapp/start
> Caused by:
> java.lang.NullPointerException
> 	at $Request_1110563691a.getContextPath($Request_1110563691a.java)
> 	at $Request_111056368ca.getContextPath($Request_111056368ca.java)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:34)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:24)
> 	at $ObjectRenderer_11105636919.render($ObjectRenderer_11105636919.java)
> 	at $ObjectRenderer_111056368c7.render($ObjectRenderer_111056368c7.java)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java:37)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10$1.run(ComponentPageElementImpl.java:334)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:931)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.access$100(ComponentPageElementImpl.java:68)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10.render(ComponentPageElementImpl.java:338)
> 	at org.apache.tapestry.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:57)
> 	at org.apache.tapestry.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:40)
> 	at $PageMarkupRenderer_11105636915.renderPageMarkup($PageMarkupRenderer_11105636915.java)
> 	at org.apache.tapestry.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:45)
> 	at $PageResponseRenderer_111056368da.renderPageResponse($PageResponseRenderer_111056368da.java)
> 	at org.apache.tapestry.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:56)
> 	at $RequestExceptionHandler_111056368b1.handleRequestException($RequestExceptionHandler_111056368b1.java)
> 	at org.apache.tapestry.services.TapestryModule$6.service(TapestryModule.java:523)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:56)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:91)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:82)
> 	at org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:104)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at $RequestHandler_111056368e8.service($RequestHandler_111056368e8.java)
> 	at org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:402)
> 	at $HttpServletRequestHandler_111056368e7.service($HttpServletRequestHandler_111056368e7.java)
> 	at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:114)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
> 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:690)
> 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:401)
> 	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
> 	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> 	at org.mortbay.jetty.Server.handle(Server.java:285)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
> 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
> The logs are no more informative.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


[jira] Commented: (TAPESTRY-1308) Exceptions while building services are poorly reported

Posted by "Howard M. Lewis Ship (JIRA)" <ta...@jakarta.apache.org>.
    [ https://issues.apache.org/jira/browse/TAPESTRY-1308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12476437 ] 

Howard M. Lewis Ship commented on TAPESTRY-1308:
------------------------------------------------

I think that's a somewhat specialized case; it made it far enough into Tapestry to try and render an exception page, but the bad service crippled the normal initialization.  I suspect you would get more exception reporting in the logs as you'd see the exception that led to this exception. The NPEs are probably de-referencing stuff inside RequestGlobals.

> Exceptions while building services are poorly reported
> ------------------------------------------------------
>
>                 Key: TAPESTRY-1308
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1308
>             Project: Tapestry
>          Issue Type: Improvement
>          Components: IoC Container
>    Affects Versions: 5.0
>            Reporter: Tom Davies
>
> Take the sample app built by tapestry-simple, and change buildTimingFilter to:
>     public RequestFilter buildTimingFilter(final Log log, final @InjectService("Test") Object test)
> ... body unchanged ...
> Add:
> public static Object buildTest()
>     {
>         throw new RuntimeException("Bang");
>     }
> When you run this, you get a 500 page:
> HTTP ERROR: 500
> INTERNAL_SERVER_ERROR
> RequestURI=/myapp/start
> Caused by:
> java.lang.NullPointerException
> 	at $Request_1110563691a.getContextPath($Request_1110563691a.java)
> 	at $Request_111056368ca.getContextPath($Request_111056368ca.java)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:34)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:24)
> 	at $ObjectRenderer_11105636919.render($ObjectRenderer_11105636919.java)
> 	at $ObjectRenderer_111056368c7.render($ObjectRenderer_111056368c7.java)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java:37)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10$1.run(ComponentPageElementImpl.java:334)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:931)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.access$100(ComponentPageElementImpl.java:68)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10.render(ComponentPageElementImpl.java:338)
> 	at org.apache.tapestry.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:57)
> 	at org.apache.tapestry.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:40)
> 	at $PageMarkupRenderer_11105636915.renderPageMarkup($PageMarkupRenderer_11105636915.java)
> 	at org.apache.tapestry.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:45)
> 	at $PageResponseRenderer_111056368da.renderPageResponse($PageResponseRenderer_111056368da.java)
> 	at org.apache.tapestry.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:56)
> 	at $RequestExceptionHandler_111056368b1.handleRequestException($RequestExceptionHandler_111056368b1.java)
> 	at org.apache.tapestry.services.TapestryModule$6.service(TapestryModule.java:523)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:56)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:91)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:82)
> 	at org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:104)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at $RequestHandler_111056368e8.service($RequestHandler_111056368e8.java)
> 	at org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:402)
> 	at $HttpServletRequestHandler_111056368e7.service($HttpServletRequestHandler_111056368e7.java)
> 	at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:114)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
> 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:690)
> 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:401)
> 	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
> 	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> 	at org.mortbay.jetty.Server.handle(Server.java:285)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
> 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
> The logs are no more informative.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


[jira] Commented: (TAPESTRY-1308) Exceptions while building services are poorly reported

Posted by "Howard M. Lewis Ship (JIRA)" <ta...@jakarta.apache.org>.
    [ https://issues.apache.org/jira/browse/TAPESTRY-1308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12478656 ] 

Howard M. Lewis Ship commented on TAPESTRY-1308:
------------------------------------------------

The new behavior is more reasonable; with an error in a key service such as a contribution to the RequestHandler pipeline, Tapestry is handicapped (there isn't enough of the system reachable to render the ExceptionReport page), but it does log more reasonably now:

16:39:28.224 ERROR! [SocketListener0-1] org.apache.tapestry.ioc.internal.OneShotServiceCreator.createObject(OneShotServiceCreator.java:63) >32> Construction of service app.TimingFilter failed: Error invoking service builder method org.example.hilo.services.AppModule.buildTimingFilter(Log) (for service 'app.TimingFilter'): Forced exception inside buildTimingFilter.
java.lang.RuntimeException: Error invoking service builder method org.example.hilo.services.AppModule.buildTimingFilter(Log) (for service 'app.TimingFilter'): Forced exception inside buildTimingFilter.
	at org.apache.tapestry.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:263)
	at org.apache.tapestry.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:31)
	at org.apache.tapestry.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:50)
	at org.apache.tapestry.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:55)
	at org.apache.tapestry.ioc.internal.OneShotServiceCreator.createObject(OneShotServiceCreator.java:59)
	at $RequestFilter_11129d5ef58._delegate($RequestFilter_11129d5ef58.java)
	at $RequestFilter_11129d5ef58.service($RequestFilter_11129d5ef58.java)
	at $RequestHandler_11129d5ef5a.service($RequestHandler_11129d5ef5a.java)
	at org.apache.tapestry.services.TapestryModule$6.service(TapestryModule.java:534)
	at $RequestHandler_11129d5ef5a.service($RequestHandler_11129d5ef5a.java)
	at org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:56)
	at $RequestHandler_11129d5ef5a.service($RequestHandler_11129d5ef5a.java)
	at org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43)
	at $RequestHandler_11129d5ef5a.service($RequestHandler_11129d5ef5a.java)
	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:91)
	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:82)
	at org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
	at org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:104)
	at $RequestHandler_11129d5ef5a.service($RequestHandler_11129d5ef5a.java)
	at $RequestHandler_11129d5ef55.service($RequestHandler_11129d5ef55.java)
	at org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:408)
	at $HttpServletRequestHandler_11129d5ef54.service($HttpServletRequestHandler_11129d5ef54.java)
	at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:115)
	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
	at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
	at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
	at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
	at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
	at org.mortbay.http.HttpServer.service(HttpServer.java:909)
	at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
	at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
	at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
	at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
	at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
	at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
Caused by: java.lang.RuntimeException: Forced exception inside buildTimingFilter.
	at org.example.hilo.services.AppModule.buildTimingFilter(AppModule.java:47)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.tapestry.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:251)
	... 35 more

> Exceptions while building services are poorly reported
> ------------------------------------------------------
>
>                 Key: TAPESTRY-1308
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1308
>             Project: Tapestry
>          Issue Type: Improvement
>          Components: tapestry-ioc
>    Affects Versions: 5.0
>            Reporter: Tom Davies
>             Fix For: 5.0.3
>
>         Attachments: log.txt, tapestry-1308.patch
>
>
> Take the sample app built by tapestry-simple, and change buildTimingFilter to:
>     public RequestFilter buildTimingFilter(final Log log, final @InjectService("Test") Object test)
> ... body unchanged ...
> Add:
> public static Object buildTest()
>     {
>         throw new RuntimeException("Bang");
>     }
> When you run this, you get a 500 page:
> HTTP ERROR: 500
> INTERNAL_SERVER_ERROR
> RequestURI=/myapp/start
> Caused by:
> java.lang.NullPointerException
> 	at $Request_1110563691a.getContextPath($Request_1110563691a.java)
> 	at $Request_111056368ca.getContextPath($Request_111056368ca.java)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:34)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:24)
> 	at $ObjectRenderer_11105636919.render($ObjectRenderer_11105636919.java)
> 	at $ObjectRenderer_111056368c7.render($ObjectRenderer_111056368c7.java)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java:37)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10$1.run(ComponentPageElementImpl.java:334)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:931)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.access$100(ComponentPageElementImpl.java:68)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10.render(ComponentPageElementImpl.java:338)
> 	at org.apache.tapestry.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:57)
> 	at org.apache.tapestry.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:40)
> 	at $PageMarkupRenderer_11105636915.renderPageMarkup($PageMarkupRenderer_11105636915.java)
> 	at org.apache.tapestry.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:45)
> 	at $PageResponseRenderer_111056368da.renderPageResponse($PageResponseRenderer_111056368da.java)
> 	at org.apache.tapestry.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:56)
> 	at $RequestExceptionHandler_111056368b1.handleRequestException($RequestExceptionHandler_111056368b1.java)
> 	at org.apache.tapestry.services.TapestryModule$6.service(TapestryModule.java:523)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:56)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:91)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:82)
> 	at org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:104)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at $RequestHandler_111056368e8.service($RequestHandler_111056368e8.java)
> 	at org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:402)
> 	at $HttpServletRequestHandler_111056368e7.service($HttpServletRequestHandler_111056368e7.java)
> 	at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:114)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
> 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:690)
> 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:401)
> 	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
> 	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> 	at org.mortbay.jetty.Server.handle(Server.java:285)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
> 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
> The logs are no more informative.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


[jira] Closed: (TAPESTRY-1308) Exceptions while building services are poorly reported

Posted by "Howard M. Lewis Ship (JIRA)" <ta...@jakarta.apache.org>.
     [ https://issues.apache.org/jira/browse/TAPESTRY-1308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship closed TAPESTRY-1308.
------------------------------------------

       Resolution: Fixed
    Fix Version/s: 5.0.3
         Assignee: Howard M. Lewis Ship

> Exceptions while building services are poorly reported
> ------------------------------------------------------
>
>                 Key: TAPESTRY-1308
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1308
>             Project: Tapestry
>          Issue Type: Improvement
>          Components: tapestry-ioc
>    Affects Versions: 5.0
>            Reporter: Tom Davies
>         Assigned To: Howard M. Lewis Ship
>             Fix For: 5.0.3
>
>         Attachments: log.txt, tapestry-1308.patch
>
>
> Take the sample app built by tapestry-simple, and change buildTimingFilter to:
>     public RequestFilter buildTimingFilter(final Log log, final @InjectService("Test") Object test)
> ... body unchanged ...
> Add:
> public static Object buildTest()
>     {
>         throw new RuntimeException("Bang");
>     }
> When you run this, you get a 500 page:
> HTTP ERROR: 500
> INTERNAL_SERVER_ERROR
> RequestURI=/myapp/start
> Caused by:
> java.lang.NullPointerException
> 	at $Request_1110563691a.getContextPath($Request_1110563691a.java)
> 	at $Request_111056368ca.getContextPath($Request_111056368ca.java)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:34)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:24)
> 	at $ObjectRenderer_11105636919.render($ObjectRenderer_11105636919.java)
> 	at $ObjectRenderer_111056368c7.render($ObjectRenderer_111056368c7.java)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java:37)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10$1.run(ComponentPageElementImpl.java:334)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:931)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.access$100(ComponentPageElementImpl.java:68)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10.render(ComponentPageElementImpl.java:338)
> 	at org.apache.tapestry.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:57)
> 	at org.apache.tapestry.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:40)
> 	at $PageMarkupRenderer_11105636915.renderPageMarkup($PageMarkupRenderer_11105636915.java)
> 	at org.apache.tapestry.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:45)
> 	at $PageResponseRenderer_111056368da.renderPageResponse($PageResponseRenderer_111056368da.java)
> 	at org.apache.tapestry.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:56)
> 	at $RequestExceptionHandler_111056368b1.handleRequestException($RequestExceptionHandler_111056368b1.java)
> 	at org.apache.tapestry.services.TapestryModule$6.service(TapestryModule.java:523)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:56)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:91)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:82)
> 	at org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:104)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at $RequestHandler_111056368e8.service($RequestHandler_111056368e8.java)
> 	at org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:402)
> 	at $HttpServletRequestHandler_111056368e7.service($HttpServletRequestHandler_111056368e7.java)
> 	at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:114)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
> 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:690)
> 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:401)
> 	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
> 	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> 	at org.mortbay.jetty.Server.handle(Server.java:285)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
> 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
> The logs are no more informative.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


[jira] Commented: (TAPESTRY-1308) Exceptions while building services are poorly reported

Posted by "Tom Davies (JIRA)" <ta...@jakarta.apache.org>.
    [ https://issues.apache.org/jira/browse/TAPESTRY-1308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12476463 ] 

Tom Davies commented on TAPESTRY-1308:
--------------------------------------

Hi Howard,

I don't think the example above is actually showing what I said it did, although I think it is a bug -- there really isn't anything more useful in the logs.

In the example above, buildTest() doesn't seem to get called (at least Idea doesn't stop at a breakpoint).

Here's a simpler example:

First change contributeRequestFilters to inject a service which doesn't exist -- you get a nice error page explaining the problem.

Then change buildTimingFilter to:

public RequestFilter buildTimingFilter(final Log log,
            @InjectService("Foo") Object foo)

And you get a 500 error:

java.lang.NullPointerException
	at $Request_11105b89475.getContextPath($Request_11105b89475.java)
	at $Request_11105b89426.getContextPath($Request_11105b89426.java)
	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:34)
	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:24)
	at $ObjectRenderer_11105b89474.render($ObjectRenderer_11105b89474.java)
	at $ObjectRenderer_11105b89423.render($ObjectRenderer_11105b89423.java)
	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java:37)
	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java)
	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10$1.run(ComponentPageElementImpl.java:334)
	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:931)
	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.access$100(ComponentPageElementImpl.java:68)
	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10.render(ComponentPageElementImpl.java:338)
	at org.apache.tapestry.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:57)
	at org.apache.tapestry.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:40)
	at $PageMarkupRenderer_11105b89470.renderPageMarkup($PageMarkupRenderer_11105b89470.java)
	at org.apache.tapestry.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:45)
	at $PageResponseRenderer_11105b89436.renderPageResponse($PageResponseRenderer_11105b89436.java)
	at org.apache.tapestry.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:56)
	at $RequestExceptionHandler_11105b8940d.handleRequestException($RequestExceptionHandler_11105b8940d.java)

Log is attached.

Shouldn't getting a service name wrong always give a nice error?

Tom

> Exceptions while building services are poorly reported
> ------------------------------------------------------
>
>                 Key: TAPESTRY-1308
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1308
>             Project: Tapestry
>          Issue Type: Improvement
>          Components: IoC Container
>    Affects Versions: 5.0
>            Reporter: Tom Davies
>         Attachments: log.txt
>
>
> Take the sample app built by tapestry-simple, and change buildTimingFilter to:
>     public RequestFilter buildTimingFilter(final Log log, final @InjectService("Test") Object test)
> ... body unchanged ...
> Add:
> public static Object buildTest()
>     {
>         throw new RuntimeException("Bang");
>     }
> When you run this, you get a 500 page:
> HTTP ERROR: 500
> INTERNAL_SERVER_ERROR
> RequestURI=/myapp/start
> Caused by:
> java.lang.NullPointerException
> 	at $Request_1110563691a.getContextPath($Request_1110563691a.java)
> 	at $Request_111056368ca.getContextPath($Request_111056368ca.java)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:34)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:24)
> 	at $ObjectRenderer_11105636919.render($ObjectRenderer_11105636919.java)
> 	at $ObjectRenderer_111056368c7.render($ObjectRenderer_111056368c7.java)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java:37)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10$1.run(ComponentPageElementImpl.java:334)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:931)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.access$100(ComponentPageElementImpl.java:68)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10.render(ComponentPageElementImpl.java:338)
> 	at org.apache.tapestry.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:57)
> 	at org.apache.tapestry.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:40)
> 	at $PageMarkupRenderer_11105636915.renderPageMarkup($PageMarkupRenderer_11105636915.java)
> 	at org.apache.tapestry.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:45)
> 	at $PageResponseRenderer_111056368da.renderPageResponse($PageResponseRenderer_111056368da.java)
> 	at org.apache.tapestry.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:56)
> 	at $RequestExceptionHandler_111056368b1.handleRequestException($RequestExceptionHandler_111056368b1.java)
> 	at org.apache.tapestry.services.TapestryModule$6.service(TapestryModule.java:523)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:56)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:91)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:82)
> 	at org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:104)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at $RequestHandler_111056368e8.service($RequestHandler_111056368e8.java)
> 	at org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:402)
> 	at $HttpServletRequestHandler_111056368e7.service($HttpServletRequestHandler_111056368e7.java)
> 	at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:114)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
> 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:690)
> 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:401)
> 	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
> 	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> 	at org.mortbay.jetty.Server.handle(Server.java:285)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
> 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
> The logs are no more informative.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


[jira] Updated: (TAPESTRY-1308) Exceptions while building services are poorly reported

Posted by "Tom Davies (JIRA)" <ta...@jakarta.apache.org>.
     [ https://issues.apache.org/jira/browse/TAPESTRY-1308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tom Davies updated TAPESTRY-1308:
---------------------------------

    Attachment: log.txt

> Exceptions while building services are poorly reported
> ------------------------------------------------------
>
>                 Key: TAPESTRY-1308
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1308
>             Project: Tapestry
>          Issue Type: Improvement
>          Components: IoC Container
>    Affects Versions: 5.0
>            Reporter: Tom Davies
>         Attachments: log.txt
>
>
> Take the sample app built by tapestry-simple, and change buildTimingFilter to:
>     public RequestFilter buildTimingFilter(final Log log, final @InjectService("Test") Object test)
> ... body unchanged ...
> Add:
> public static Object buildTest()
>     {
>         throw new RuntimeException("Bang");
>     }
> When you run this, you get a 500 page:
> HTTP ERROR: 500
> INTERNAL_SERVER_ERROR
> RequestURI=/myapp/start
> Caused by:
> java.lang.NullPointerException
> 	at $Request_1110563691a.getContextPath($Request_1110563691a.java)
> 	at $Request_111056368ca.getContextPath($Request_111056368ca.java)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:34)
> 	at org.apache.tapestry.internal.services.RequestRenderer.render(RequestRenderer.java:24)
> 	at $ObjectRenderer_11105636919.render($ObjectRenderer_11105636919.java)
> 	at $ObjectRenderer_111056368c7.render($ObjectRenderer_111056368c7.java)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java:37)
> 	at org.apache.tapestry.corelib.components.RenderObject.beginRender(RenderObject.java)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10$1.run(ComponentPageElementImpl.java:334)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:931)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl.access$100(ComponentPageElementImpl.java:68)
> 	at org.apache.tapestry.internal.structure.ComponentPageElementImpl$10.render(ComponentPageElementImpl.java:338)
> 	at org.apache.tapestry.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:57)
> 	at org.apache.tapestry.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:40)
> 	at $PageMarkupRenderer_11105636915.renderPageMarkup($PageMarkupRenderer_11105636915.java)
> 	at org.apache.tapestry.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:45)
> 	at $PageResponseRenderer_111056368da.renderPageResponse($PageResponseRenderer_111056368da.java)
> 	at org.apache.tapestry.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:56)
> 	at $RequestExceptionHandler_111056368b1.handleRequestException($RequestExceptionHandler_111056368b1.java)
> 	at org.apache.tapestry.services.TapestryModule$6.service(TapestryModule.java:523)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:56)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:91)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:82)
> 	at org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:104)
> 	at $RequestHandler_111056368ee.service($RequestHandler_111056368ee.java)
> 	at $RequestHandler_111056368e8.service($RequestHandler_111056368e8.java)
> 	at org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:402)
> 	at $HttpServletRequestHandler_111056368e7.service($HttpServletRequestHandler_111056368e7.java)
> 	at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:114)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
> 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:690)
> 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:401)
> 	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
> 	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> 	at org.mortbay.jetty.Server.handle(Server.java:285)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
> 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
> The logs are no more informative.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org