You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2010/03/24 22:41:27 UTC

[jira] Commented: (TAP5-1075) When a template contains a reference to an unknown component, the new UnknownValueException is reported but the Location is no longer reported, making it much harder to determine where the error occurred

    [ https://issues.apache.org/jira/browse/TAP5-1075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12849463#action_12849463 ] 

Howard M. Lewis Ship commented on TAP5-1075:
--------------------------------------------

In my case, it was <t:delete> instead of <t:delegate>, but the exception:

org.apache.tapestry5.ioc.util.UnknownValueException
Unable to resolve 'delete' to a component class name.


org.apache.tapestry5.internal.services.ComponentClassResolverImpl$6.invoke(ComponentClassResolverImpl.java:469)
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
org.apache.tapestry5.internal.services.ComponentClassResolverImpl.resolveComponentTypeToClassName(ComponentClassResolverImpl.java:462)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.startComponent(PageLoaderImpl.java:729)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.component(PageLoaderImpl.java:610)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.processTemplateToken(PageLoaderImpl.java:400)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.element(PageLoaderImpl.java:670)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.processTemplateToken(PageLoaderImpl.java:395)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.element(PageLoaderImpl.java:670)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.processTemplateToken(PageLoaderImpl.java:395)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.element(PageLoaderImpl.java:670)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.processTemplateToken(PageLoaderImpl.java:395)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.programAssembler(PageLoaderImpl.java:234)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.createAssembler(PageLoaderImpl.java:207)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.getAssembler(PageLoaderImpl.java:183)
org.apache.tapestry5.internal.pageload.PageLoaderImpl$12.execute(PageLoaderImpl.java:943)
org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.runActions(ComponentAssemblerImpl.java:207)
org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.assembleRootComponent(ComponentAssemblerImpl.java:88)
org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.java:159)
org.apache.tapestry5.internal.services.PagePoolCache.checkout(PagePoolCache.java:210)
org.apache.tapestry5.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:99)
org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:51)
org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:53)
org.apache.tapestry5.services.TapestryModule$35.handle(TapestryModule.java:2253)
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48)
org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47)
org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45)
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:294)
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:923)
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:913)
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:245)
org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:866)
org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:147)


.... didn't leave enough clues about where to find the problem!

An exception catch around component creation from template tokens is needed, to associate a TapestryRuntimeException with location around the UnknownValueException.

> When a template contains a reference to an unknown component, the new UnknownValueException is reported but the Location is no longer reported, making it much harder to determine where the error occurred
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1075
>                 URL: https://issues.apache.org/jira/browse/TAP5-1075
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-component-report
>    Affects Versions: 5.2.0
>            Reporter: Howard M. Lewis Ship
>            Priority: Critical
>


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