[
https://issues.apache.org/jira/browse/MYFACES-2544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12831966#action_12831966
]
Martin Koci commented on MYFACES-2544:
--------------------------------------
This is probably bug in spec.
https://javaserverfaces.dev.java.net/nonav/docs/2.0/javadocs/javax/faces/component/UIViewRoot.html
says: "Upon return from the listener, call FacesContext.getResponseComplete()
and FacesContext.getRenderResponse(). If either return true set the internal
state flag to true. ... Execute any processing for this phase if the internal
state flag was not set." But this nonsence for render response phase, because
FacesContext.renderResponse() = "Signal the JavaServer faces implementation
that, as soon as the current phase of the request processing lifecycle has been
completed, control should be passed to the <em>Render Response</em> phase,
bypassing any phases that have not been executed yet."
Delivering PreRenderComponentEvent is ok, because spec says:
"encodeBegin() must publish a PreRenderComponentEvent" or
"PreRenderComponentEvent indicates that the source component is about to be
rendered". UIViewRoot is UIComponent too and there is no reason to act
differently (although PreRenderViewEvent and PreRenderComponentEvent attached
to UIViewRoot have same meaning).
> UIViewRoot skips uncorrectly encodeBegin
> ----------------------------------------
>
> Key: MYFACES-2544
> URL: https://issues.apache.org/jira/browse/MYFACES-2544
> Project: MyFaces Core
> Issue Type: Bug
> Components: JSR-314
> Affects Versions: 2.0.0-beta-2
> Environment: myfaces trunk
> Reporter: Martin Koci
> Assignee: Jakob Korherr
> Fix For: 2.0.0-beta-2
>
> Attachments: MYFACES-2544.patch
>
>
> javax.faces.component.UIViewRoot.encodeBegin(FacesContext) contains:
> if (!skipPhase) {
> super.encodeBegin(context);
> }
> but skipPhase = context.getRenderResponse() || context.getResponseComplete()
> - it
> makes sense for all phases except render response phase itself. That condition
> probably should be:
> if (!context.getResponseComplete()) {
> super.encodeBegin(context);
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.