myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bauke Scholtz (JIRA)" <...@myfaces.apache.org>
Subject [jira] [Comment Edited] (MYFACES-4120) ResourceHandler#markResourceRendered() should be retained during ajax rebuild
Date Thu, 08 Jun 2017 14:59:18 GMT

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

Bauke Scholtz edited comment on MYFACES-4120 at 6/8/17 2:58 PM:
----------------------------------------------------------------

The problem is not in JavaScript side. It does it all correct. The problem is in JSF side,
it is not "in sync" with JavaScript side. The isResourceRendered() incorrectly returns false
while the resource is "rendered" (loaded) in JavaScript side.

And, you got the isRenderAll() backwards. I didn't mean when it returns true but when it returns
false. I.e. there's no renderAll.


was (Author: balusc):
The problem is not in JavaScript side. It does it all correct. The problem is in JSF side,
it is not "in sync" with JavaScript side. The isResourceRendered() incorrectly returns false
while the resource is rendered in JavaScript side.

And, you got the isRenderAll() backwards. I didn't mean when it returns true but when it returns
false. I.e. there's no renderAll.

> ResourceHandler#markResourceRendered() should be retained during ajax rebuild
> -----------------------------------------------------------------------------
>
>                 Key: MYFACES-4120
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4120
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.3.0
>         Environment: TomEE 7.0.3 with MyFaces 2.3.0-SNAPSHOT
>            Reporter: Bauke Scholtz
>            Assignee: Leonardo Uribe
>
> While running OmniFaces IT suite on today's MyFaces 2.3.0-SNAPSHOT, I noticed a bug in
ResourceHandler#isResourceRendered() during an ajax navigation back to the same view (more
specifically, when FacesContext#setViewRoot() is invoked with a new UIViewRoot of same viewId
during an ajax postback). 
> During restore view phase, all already-rendered resources are correctly marked via markResourceRendered().
However, this is in turn stored as a transient UIViewRoot attribute. As a consequence, when
the UIViewRoot gets changed during the very same ajax request, they are all lost, causing
isResourceRendered() to incorrectly return false.
> Basically, the markResourceRendered() of the previous view should be remembered for the
next view when PartialViewContext#isAjaxRequest() returns true and isRenderAll() returns false.
> In MyFaces 2.2 (and possibly earlier) the behavior of markResourceRendered() and isResourceRendered()
was internally correctly implemented via org.apache.myfaces.RENDERED_SCRIPT_RESOURCES_SET
context attribute.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message