You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Christophe Cordenier (JIRA)" <ji...@apache.org> on 2010/08/01 12:41:17 UTC

[jira] Issue Comment Edited: (TAP5-1201) PageResponseRenderer.render() should call RequestGlobabls.storeActivePageName(String pageName)

    [ https://issues.apache.org/jira/browse/TAP5-1201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12894366#action_12894366 ] 

Christophe Cordenier edited comment on TAP5-1201 at 8/1/10 6:41 AM:
--------------------------------------------------------------------

Active page name is used to pre-allocates control names in Form component, but also to append loopback marker in link generated by LinkSource.

Two decent workarounds :

- Redirect instead of direct rendering
- Insert your security component request filter after the one that initializes active page ("InitializeActivePageName")

At last, the active page state should be reseted in case of exception (can be done in developer code with onException) and current active page should be changed in DefaultRequestExceptionHandler to avoid consistency problem in loopback URL.

      was (Author: ccordenier):
    Active page name is used to pre-allocates control names in Form component, but also to append loopback marker in LinkSource.

Two decent workarounds :

- Redirect instead of direct rendering
- Insert your security component request filter after the one that initializes active page ("InitializeActivePageName")

At last, the active page state should be reseted in case of exception (can be done in developer code with onException) and current active page should be changed in DefaultRequestExceptionHandler to avoid consistency problem in loopback URL.
  
> PageResponseRenderer.render() should call RequestGlobabls.storeActivePageName(String pageName) 
> -----------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1201
>                 URL: https://issues.apache.org/jira/browse/TAP5-1201
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.2.0
>            Reporter: Kalle Korhonen
>            Assignee: Christophe Cordenier
>            Priority: Minor
>         Attachments: TAP5-1201.patch
>
>
> Applications may want render an error page as a response to handling an exception thrown from a page. This can be achieved by calling PageResponseRenderer.render() and worked in T5.1.05 but in T5.2 throws ComponentSource.getActivePage() throws "org.apache.tapestry5.ioc.internal.util.TapestryException: The identity of the active page for this request has not yet been established" if the newly added RequestGlobabls.storeActivePageName(String pageName) hasn't been called before. When asked on the mailing list (http://www.listware.net/201007/tapestry-users/10342-using-pageresponserendererrender-in-t52.html) for adding the call to PageResponseRenderer.render(), Howard's response was:
> "I suppose it could; just a case of unexpected use of the APIs.  As currently coded, we assume that the active page is identified by the component event or page render dispatcher."

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.