You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-issues@incubator.apache.org by "Arjuna Wijeyekoon (JIRA)" <ad...@incubator.apache.org> on 2006/09/29 18:52:20 UTC

[jira] Commented: (ADFFACES-209) stateManagerImpl does not preserve state for UIViewRoot Correctly.

    [ http://issues.apache.org/jira/browse/ADFFACES-209?page=comments#action_12438773 ] 
            
Arjuna Wijeyekoon commented on ADFFACES-209:
--------------------------------------------

why do we recreate the UIViewRoot component on every request?

Well, we wanted to optimize by not calling processRestoreState() when the cached UIComponent tree (from the previous request) is available.
However, when the UIViewRoot was cached, it would cause the following bug:
1. events were queued during a request.
2. because of validation errors queued events were not delivered.
3. response is rendered.
4. subsequent request comes in.
5. no validation errors are generated.
6. !!BUG!! events queued in step 1 are delivered now!

So to workaround that we decided to recreate the UIViewRoot component and not cache it. Instead, we cache the attributes from the old
UIViewRoot component and copy them onto the new one.
However, as this issue points out, we still have bugs.

> stateManagerImpl does not preserve state for UIViewRoot Correctly.
> ------------------------------------------------------------------
>
>                 Key: ADFFACES-209
>                 URL: http://issues.apache.org/jira/browse/ADFFACES-209
>             Project: MyFaces ADF-Faces
>          Issue Type: Bug
>            Reporter: Arjuna Wijeyekoon
>
> Currently, Trinidad's StateManagerImpl recreates the UIViewRoot component on every request.
> This causes the following bugs:
> 1. not all state is copied from the old UIViewRoot to the new UIViewRoot, specifically:
>  unique id counters and faces listeners, etc ...
> 2. If  the class for UIViewRoot component is redefined in faces-config.xml, this will break after first the first restoreState call.

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