[ 
https://issues.apache.org/jira/browse/MYFACES-2374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12773628#action_12773628
 ] 

Jakob Korherr commented on MYFACES-2374:
----------------------------------------

ad 1. Thanks - I did not know that
ad 2. It removes invalid code, because the PhaseListeners from 
getPhaseListeners() don't need to be called any more. They changed this 
behavior, see javadoc of UIViewRoot:

The default implementation must call 
UIComponentBase.processRestoreState(javax.faces.context.FacesContext, 
java.lang.Object) from within a try block. The try block must have a finally 
block that ensures that no FacesEvents remain in the event queue, and that the 
this.UIComponent.visitTree(javax.faces.component.visit.VisitContext, 
javax.faces.component.visit.VisitCallback) is called, passing a ContextCallback 
that takes the following action: call the 
UIComponent.processEvent(javax.faces.event.ComponentSystemEvent) method of the 
current component. The argument event must be an instance of 
PostRestoreStateEvent whose component property is the current component in the 
traversal.
--> They deleted the following: "that any PhaseListeners in getPhaseListeners() 
are invoked as appropriate"

Besides that, this implementation does not check, if the PhaseListener is 
registered for PhaseId.RESTORE_VIEW or PhaseId.ANY_PHASE.

> UIViewRoot.getBeforePhaseListener() and UIViewRoot.getAfterPhaseListener() 
> could be called on PhaseId.RESTORE_VIEW
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-2374
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2374
>             Project: MyFaces Core
>          Issue Type: Task
>          Components: JSR-314
>            Reporter: Leonardo Uribe
>         Attachments: restore_view_phaselistener.patch, 
> restore_view_phaselistener_newest.patch
>
>
> Note that on jsf 1.2 this is not true. The problem with this one is how call 
> UIViewRoot beforePhaseListener before PhaseId.RESTORE_VIEW, because in theory 
> we need to "restore it" before call it. Maybe the solution is call it from 
> the place where the state is restored (JspStateManagerImpl).

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

Reply via email to