[richfaces-issues] [JBoss JIRA] (RF-13252) a4j:ajax includes jsf.js script twice
Lukáš Fryč (JIRA)
issues at jboss.org
Mon Jan 6 08:53:32 EST 2014
[ https://issues.jboss.org/browse/RF-13252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12933799#comment-12933799 ]
Lukáš Fryč edited comment on RF-13252 at 1/6/14 8:51 AM:
---------------------------------------------------------
For marking the resource as renderer, we would need to hard-code an flag to satisfy the condition put by Mojarra:
https://github.com/jboss/mojarra/blob/2.1.19-jbossorg-1/jsf-ri/src/main/java/com/sun/faces/renderkit/RenderKitUtils.java#L1070
{code}
public class ResourceTrackerForMojarra implements ResourceTracker {
...
@Override
public void markResourceRendered(FacesContext facesContext, ResourceKey resourceKey) {
...
if (ResourceKey.create("javax.faces:jsf.js").equals(resourceKey)) {
facesContext.getAttributes().put("com.sun.faces.SCRIPT_STATE", Boolean.TRUE);
}
}
}
{code}
The Mojarra code here is little bit inconsistent as there is another mean of flagging presense of a script:
https://github.com/jboss/mojarra/blob/2.1.19-jbossorg-1/jsf-ri/src/main/java/com/sun/faces/renderkit/html_basic/ScriptRenderer.java#L86
----
Even though I prototyped the patch suggested above and verified it fixed initial rendering,
the {{<script>}} is then still rendered on AJAX post-back (during partial-response).
That's because the flag is missing in context on post-back.
was (Author: lfryc):
For marking the resource as renderer, we would need to hard-code an flag to satisfy the condition put by Mojarra:
https://github.com/jboss/mojarra/blob/2.1.19-jbossorg-1/jsf-ri/src/main/java/com/sun/faces/renderkit/RenderKitUtils.java#L1070
{code}
public class ResourceTrackerForMojarra implements ResourceTracker {
...
@Override
public void markResourceRendered(FacesContext facesContext, ResourceKey resourceKey) {
...
if (ResourceKey.create("javax.faces:jsf.js").equals(resourceKey)) {
facesContext.getAttributes().put("com.sun.faces.SCRIPT_STATE", Boolean.TRUE);
}
}
}
{code}
The Mojarra code here is little bit inconsistent as there is another mean of flagging presense of a script:
https://github.com/jboss/mojarra/blob/2.1.19-jbossorg-1/jsf-ri/src/main/java/com/sun/faces/renderkit/html_basic/ScriptRenderer.java#L86
----
Even though I prototyped the patch suggested above, the {{<script>}} was rendered on AJAX post-back (during partial-response).
That's because the flag is missing in context.
> a4j:ajax includes jsf.js script twice
> -------------------------------------
>
> Key: RF-13252
> URL: https://issues.jboss.org/browse/RF-13252
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-a4j-core
> Affects Versions: 4.3.4
> Environment: any browser
> EAP 6.2 (Mojarra 2.1.19)
> EAP 6.1 (Mojarra 2.1.19)
> JBoss AS 7.1.1 (Mojarra 2.1.7)
> Reporter: Jonáš Trantina
> Assignee: Lukáš Fryč
> Fix For: 4.3.5
>
> Attachments: reproducer.zip
>
> Original Estimate: 4 hours
> Remaining Estimate: 4 hours
>
> When a4j:script is used in the page like so:
> {noformat}
> <h:commandLink value="Click me ">
> <a4j:ajax event="click" render="@form"/>
> </h:commandLink>
> {noformat}
> Then two script tags pointing to jsf.js are added to the page, once in the head by the inclusion of @ResourceDependency [1], and once again by Overriding the ClientBehaviorRenderer#getScript method [2,3].
> Note, that according to Brian, resolving this without introducing any functional regressions may require the resolution of RF-12270 [4].
> [1] https://github.com/richfaces/richfaces/blob/master/framework/src/main/java/org/richfaces/ui/ajax/ajax/AjaxBehaviorRenderer.java#L53
> [2] https://github.com/richfaces/richfaces/blob/master/framework/src/main/java/org/richfaces/ui/ajax/ajax/AjaxBehaviorRenderer.java#L123
> [3] https://github.com/jboss/mojarra/blob/2.1.21-jbossorg-1/jsf-api/src/main/java/javax/faces/render/ClientBehaviorRenderer.java#L95
> [4] https://issues.jboss.org/browse/RF-12270
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the richfaces-issues
mailing list