[ http://issues.apache.org/jira/browse/TAPESTRY-733?page=comments#action_12364476 ]
Mark Lehmacher commented on TAPESTRY-733: ----------------------------------------- I, too, would like to see this fixed. I run into the same problem every now and then and it's always annoying to work around. It would really be natural that outermost pageBeginRender methods should be called before the innermost ones. > Tapestry should call listeners (such as PageBeginRenderListener) in some > predefined order > ----------------------------------------------------------------------------------------- > > Key: TAPESTRY-733 > URL: http://issues.apache.org/jira/browse/TAPESTRY-733 > Project: Tapestry > Type: Improvement > Versions: 4.0 > Environment: Tapestry 4.0-beta-11 > Reporter: Leonardo Quijano Vincenzi > > This is important in order to allow initialization of nested componentes in a > subcomponent. Right now, Tapestry uses a for-loop to iterate over all > listeners (3900+), and then executes pageBeginRender on every entry. The > order of execution is undefined, so pageBeginRender() methods can't rely on > parent component's initialization to be run. > For example if a page has an element "foo" initialized in pageBeginRender: > setFoo(new Foo()); > and a component call like this: > <span jwcid="@SomeComponent" bar="ognl:foo.bar" /> > And then SomeComponent tries to initialize "bar" in pageBeginRender" > ... > setBar(new Bar(...)); > This could throw a binding exception since there's no guarantee that Foo's > pageBeginRender has ever been called. Right now I'm using a workaround, > making my own listener interfaces and calling "nestedInit" from a master > pageBeginRender() method. I think a better option would be to guarantee that > parent components get their pageBeginRender method executed before their > child ones. > Of course, I guess some provisions should be taken to avoid infinite > recursions. Maybe Tapestry can build up a stack while calling listeners, and > check if the listener has already been called in case a component re-utilizes > one of its parent as sub-component. -- 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
