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

Leonardo Uribe commented on MYFACES-4120:
-----------------------------------------

I'm thinking on the side effect of not render resources inside <head> tag 
content. Suppose an stylesheet. If the stylesheed is not inside <head> tag 
after render all, the view will not be rendered properly. What I mean is 
javascript resources are preserved BUT stylesheet resources aren't if they are 
not bound to the DOM tree. 

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

Reply via email to