tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Howard M. Lewis Ship (JIRA)" <tapestry-...@jakarta.apache.org>
Subject [jira] Commented: (TAPESTRY-638) Recursive components result in a StackOverflowError
Date Sat, 10 Sep 2005 18:04:31 GMT
    [ http://issues.apache.org/jira/browse/TAPESTRY-638?page=comments#action_12323135 ] 

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

In my case, I was defining a Border.html as:

<html jwcid="shell">
  <body jwcid="@Border">



That should have been @Body, not @Border, thus the infinite recursion.

> Recursive components result in a StackOverflowError
> ---------------------------------------------------
>
>          Key: TAPESTRY-638
>          URL: http://issues.apache.org/jira/browse/TAPESTRY-638
>      Project: Tapestry
>         Type: Bug
>   Components: Framework
>  Environment: 4.0-beta-6
>     Reporter: Howard M. Lewis Ship
>     Priority: Minor
>      Fix For: 4.0

>
> If a component includes itself in its template, we get a stack overflow.  Ideally, we
should be able to detect this early as an error.
> org.apache.hivemind.ApplicationRuntimeException
> Could not load class Border from ContextLoader@32124414: java.lang.StackOverflowError
>  
> java.lang.StackOverflowError
> Stack Trace:
>     * java.lang.Exception.<init>(Exception.java:77)
>     * java.security.PrivilegedActionException.<init>(PrivilegedActionException.java:48)
>     * java.security.AccessController.doPrivileged(Native Method)
>     * java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>     * org.mortbay.http.ContextLoader.loadClass(ContextLoader.java:197)
>     * org.mortbay.http.ContextLoader.loadClass(ContextLoader.java:170)
>     * java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>     * java.lang.Class.forName0(Native Method)
>     * java.lang.Class.forName(Class.java:242)
>     * org.apache.hivemind.impl.DefaultClassResolver.lookupClass(DefaultClassResolver.java:101)
>     * org.apache.hivemind.impl.DefaultClassResolver.checkForClass(DefaultClassResolver.java:108)
>     * org.apache.tapestry.services.impl.ClassFinderImpl.findClass(ClassFinderImpl.java:45)
>     * $ClassFinder_106413065c7.findClass($ClassFinder_106413065c7.java)
>     * org.apache.tapestry.pageload.NamespaceClassSearchComponentClassProvider.provideComponentClassName(NamespaceClassSearchComponentClassProvider.java:44)
>     * $ComponentClassProvider_106413066a8.provideComponentClassName($ComponentClassProvider_106413066a8.java)
>     * $ComponentClassProvider_10641306680.provideComponentClassName($ComponentClassProvider_10641306680.java)
>     * $ComponentClassProvider_1064130667a.provideComponentClassName($ComponentClassProvider_1064130667a.java)
>     * org.apache.tapestry.pageload.PageLoader.instantiateComponent(PageLoader.java:543)
>     * org.apache.tapestry.pageload.PageLoader.createImplicitComponent(PageLoader.java:512)
>     * $IPageLoader_10641306666.createImplicitComponent($IPageLoader_10641306666.java)
>     * $IPageLoader_10641306667.createImplicitComponent($IPageLoader_10641306667.java)
>     * org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.createImplicitComponent(ComponentTemplateLoaderLogic.java:218)
>     * org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(ComponentTemplateLoaderLogic.java:172)
>     * org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(ComponentTemplateLoaderLogic.java:111)
>     * org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.loadTemplate(ComponentTemplateLoaderLogic.java:88)
>     * org.apache.tapestry.services.impl.ComponentTemplateLoaderImpl.loadTemplate(ComponentTemplateLoaderImpl.java:60)
>     * $ComponentTemplateLoader_10641306670.loadTemplate($ComponentTemplateLoader_10641306670.java)
>     * org.apache.tapestry.pageload.PageLoader.loadTemplateForComponent(PageLoader.java:668)
>     * org.apache.tapestry.BaseComponent.readTemplate(BaseComponent.java:77)
>     * org.apache.tapestry.BaseComponent.finishLoad(BaseComponent.java:107)
>     * org.apache.tapestry.pageload.PageLoader.constructComponent(PageLoader.java:470)
>     * org.apache.tapestry.pageload.PageLoader.createImplicitComponent(PageLoader.java:525)
>     * $IPageLoader_10641306666.createImplicitComponent($IPageLoader_10641306666.java)
>     * $IPageLoader_10641306667.createImplicitComponent($IPageLoader_10641306667.java)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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


Mime
View raw message