[ http://issues.apache.org/jira/browse/TAPESTRY-733?page=all ]
Mind Bridge resolved TAPESTRY-733:
----------------------------------
Resolution: Fixed
Assign To: Mind Bridge
The code has been modified, so that if cmponent A uses component B (either in
its template or spec), then pageBeginRender will be invoked first in A, and
then in B.
> 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
> Assignee: Mind Bridge
>
> 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]