[ https://issues.apache.org/jira/browse/MYFACES-4710?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17930813#comment-17930813 ]
Werner Punz edited comment on MYFACES-4710 at 2/26/25 10:10 PM: ---------------------------------------------------------------- Ok I think I found the code which causes it: HtmlCommandScriptRenderer indeed seems to swallow the o parameter passed down: {code:java} // code placeholder script.append("var "+name+" = function(o){var o=(typeof o==='object')&&o?o:{};"); script.prettyLine(); List<UIParameter> uiParams = HtmlRendererUtils.getValidUIParameterChildren( context, getChildren(commandScript), false, false); StringBuilder ajax = SharedStringBuilder.get(context, AJAX_SB, 60); AjaxScriptBuilder.build(context, ajax, commandScript, commandScript.getClientId(context), "action", commandScript.getExecute(), commandScript.getRender(), commandScript.getResetValues(), commandScript.getOnerror(), commandScript.getOnevent(), uiParams); script.append(ajax.toString()); script.decreaseIndent(); script.append("}"); {code} the AjaxScriptBuilder ignores the o parameter, it probably must be passed into the ui params upfront to be taken into consideration. Also params should be passed via params: {} (see my example code above) originally because the older specs did not specify it properly it was possible to pass them straight down. I got a bugreport a while ago in about a TCK failing because params was not taken into consideration, now in myfaces both methods work, but params should be used from now on as key for the params list! was (Author: werpu): Ok I think I found the code which causes it: HtmlCommandScriptRenderer indeed seems to swallow the o parameter passed down: {code:java} // code placeholder script.append("var "+name+" = function(o){var o=(typeof o==='object')&&o?o:{};"); script.prettyLine(); List<UIParameter> uiParams = HtmlRendererUtils.getValidUIParameterChildren( context, getChildren(commandScript), false, false); StringBuilder ajax = SharedStringBuilder.get(context, AJAX_SB, 60); AjaxScriptBuilder.build(context, ajax, commandScript, commandScript.getClientId(context), "action", commandScript.getExecute(), commandScript.getRender(), commandScript.getResetValues(), commandScript.getOnerror(), commandScript.getOnevent(), uiParams); script.append(ajax.toString()); script.decreaseIndent(); script.append("}"); {code} the AjaxScriptBuilder ignores the o parameter, it probably must be passed into the ui params upfront to be taken into consideration. Also params should be passed via params: {} (see my example code above) originally because the older specs did not specify it properly it was possible to pass them straight down. I got a bugreport a while ago in about a TCK failing because params was not taken into consideration, now in myfaces both methods work, but params should be used from now on as key for the params list! I will look into it on fixing this but someone with more insight into the code probably can make a safer fix than I can! [~volosied] [~tandraschko] ? > CommandScript: Behaves differently than Mojarra > ----------------------------------------------- > > Key: MYFACES-4710 > URL: https://issues.apache.org/jira/browse/MYFACES-4710 > Project: MyFaces Core > Issue Type: Bug > Components: General > Affects Versions: 4.0.2, 4.1.0 > Reporter: Melloware > Assignee: Werner Punz > Priority: Major > Attachments: image-2025-02-03-11-04-43-114.png, > image-2025-02-03-11-04-58-475.png, image-2025-02-24-21-21-16-189.png, > image-2025-02-24-21-50-18-216.png, image-2025-02-24-21-51-24-014.png, > image-2025-02-26-23-09-38-927.png, omnifaces-push-194.zip > > > Original report: https://github.com/quarkiverse/quarkus-omnifaces/issues/194 > Basically if you pass a socket reponse message directly to a CommandScript > its supposed to convert those params to Request Parameters. > {code:xml} > <h:commandScript name="wsUpdate" action="#{omniPushBean.complex()}" > render="something"/> > <o:socket channel='complex' onmessage="wsUpdate"/> > {code} > If the socket message was > {code:javascript} > {"event":"test","id":"48e496b2-1aa7-42ec-bd57-0832c966d8c7"} > {code} > It the `wsUpdate` command is supposed to send those as Request parameters and > Mojarra does this but MyFaces does not. > Mojarra: > !image-2025-02-03-11-04-43-114.png! > MyFaces: > !image-2025-02-03-11-04-58-475.png! -- This message was sent by Atlassian Jira (v8.20.10#820010)