You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2008/10/29 00:36:44 UTC

[jira] Closed: (TAP5-128) Render phase short circuiting fails to abort the event when mixins are present on the component, resulting in an IllegalStateException when trying to store a subsequent result value

     [ https://issues.apache.org/jira/browse/TAP5-128?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship closed TAP5-128.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 5.0.16

Thanks for the sample app; I updated it for 5.0.15 and verified the problem, then tried the fix. Had to modify the mixins to return false from beforeRenderBody(), but then everything worked as expected (the Any component omitted its body).

> Render phase short circuiting fails to abort the event when mixins are present on the component, resulting in an IllegalStateException when trying to store a subsequent result value
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-128
>                 URL: https://issues.apache.org/jira/browse/TAP5-128
>             Project: Tapestry 5
>          Issue Type: Bug
>            Reporter: Nick Westgate
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>             Fix For: 5.0.16
>
>         Attachments: jira1662sample.tgz
>
>
> According to the docs on render phase short-circuiting for methods of the same phase:
> http://tapestry.apache.org/tapestry5/tapestry-core/guide/rendering.html
> "If a method returns a true or false value, this will short circuit processing.
> Other methods within the phase that would ordinarily be invoked will not be invoked."
> This is currently unimplemented. (Only other "inner" phases are short-circuited & not invoked.)
> Changes would primarily affect:
> org.apache.tapestry.internal.structure.ComponentCallback
> org.apache.tapestry.internal.structure.ComponentPageElementImpl
> In ComponentPageElementImpl.invoke(...), the loop:
>             while (i.hasNext())
>                 callback.run(i.next());
> needs to implement the short circuiting, for example:
>             while (i.hasNext())
>                 if (callback.run(i.next()))
>                     break;
> This change would cascade up to ComponentCallback and all its usage in ComponentPageElementImpl.
> Cheers,
> Nick.

-- 
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: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org