[
https://issues.apache.org/jira/browse/MYFACES-4120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16041799#comment-16041799
]
Leonardo Uribe commented on MYFACES-4120:
-----------------------------------------
But if isRenderAll() renders the whole view including replace all content
inside <head> tag, right? Even if isResourceRendered() return true, the whole
view will be replaced. It doesn't sound like a bug to me, or am I missing
something?
> 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
>
> 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)