[
https://issues.apache.org/jira/browse/TAPESTRY-638?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Howard M. Lewis Ship updated TAPESTRY-638:
------------------------------------------
Fix Version/s: (was: 4.1.2)
Affects Version/s: 5.0
> Recursive components result in a StackOverflowError
> ---------------------------------------------------
>
> Key: TAPESTRY-638
> URL: https://issues.apache.org/jira/browse/TAPESTRY-638
> Project: Tapestry
> Issue Type: Bug
> Components: Framework
> Affects Versions: 5.0
> Environment: 4.0-beta-6
> Reporter: Howard M. Lewis Ship
> Priority: Minor
>
> 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 [EMAIL PROTECTED]:
> 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.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]