[ 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]

Reply via email to