You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Werner Punz (Jira)" <de...@myfaces.apache.org> on 2022/12/01 17:28:00 UTC

[jira] [Comment Edited] (MYFACES-4511) TCK: Spec790: Manual faces.ajax.request() call fails to send correct response

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

Werner Punz edited comment on MYFACES-4511 at 12/1/22 5:27 PM:
---------------------------------------------------------------

Short update, I now hopefully also have fixed it for the old code, the TCK passes on both now.

However I am not commit ready, as my fixing on the old code exposed a few wrong assumptions i made to pass the TCK (I missed several corner cases covered by the javadoc regarding the viewroot resolution and absolute and relative searches), so I had to refix also the new code again. Either way the TCKs pass on both code bases now. Expect a commit for both codebases tomorrow.

 


was (Author: werpu):
Short update, I now hopefully also have fixed it for the old code, the TCK passes on both now.

However I am not commit ready, also my fixing on the old code exposed a few wrong assumptions i made, so I had to refix also the new code again. Either way the TCKs pass on both code bases now. Expect a commit for both codebases tomorrow.

 

> TCK: Spec790: Manual faces.ajax.request() call fails to send correct response 
> ------------------------------------------------------------------------------
>
>                 Key: MYFACES-4511
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4511
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.2.15, 2.3.10, 2.3-next-M7, 4.0.0-RC2
>            Reporter: Volodymyr Siedlecki
>            Assignee: Werner Punz
>            Priority: Major
>         Attachments: image-2022-11-30-13-58-54-262.png
>
>
> For this TCK application (see github and the attached),  the manual ajax request fails.
> URL: localhost:port/namespacedView/spec790WithNamespacedView.xhtml
> MyFaces Output:{{{{}}{}}}
> {noformat}
> <?xml version="1.0" encoding="UTF-8"?>
> <partial-response id="j_id__v_0">
>    <changes>
>       <update id="j_id__v_0:jakarta.faces.ViewState:1">
>          <![CDATA[ZWZkYjAyMGViZWRhZjZmYzAwMDAwMDAy]]>
>       </update>
>    </changes>
> </partial-response>{noformat}
> {{}}
> Mojarra Output:
> {noformat}
> <?xml version='1.0' encoding='UTF-8'?>
> <partial-response id="j_id1">
>    <changes>
>       <update id="j_id1:panel1">
>          <![CDATA[<div id="j_id1:panel1">
>             <form id="j_id1:form1" name="j_id1:form1" method="post" action="/namespacedView/spec790WithNamespacedView.xhtml" enctype="application/x-www-form-urlencoded">
>             <input type="hidden" name="j_id1:form1" value="j_id1:form1" />
>             <input id="j_id1:form1:button" type="submit" name="j_id1:form1:button" value="submit form1 and render panel2 and panel3 using h:commandButton f:ajax" onclick="mojarra.ab(this,event,'action','j_id1:form1','j_id1:panel2 j_id1:panel3');return false" />
>             </form></div>]]>
>       </update>
>       <update id="j_id1:panel2">
>          <![CDATA[<div id="j_id1:panel2">
>             <form id="j_id1:form2" name="j_id1:form2" method="post" action="/namespacedView/spec790WithNamespacedView.xhtml" enctype="application/x-www-form-urlencoded">
>             <input type="hidden" name="j_id1:form2" value="j_id1:form2" />
>             <a id="j_id1:form2:link" href="#" onclick="mojarra.ab(this,event,'action','j_id1:form2','j_id1:panel1 j_id1:panel3');return false">submit form2 and render panel1 and panel3 using h:commandLink f:ajax</a>
>             </form></div>]]>
>       </update>
>       <update id="j_id1:jakarta.faces.ViewState:0">
>          <![CDATA[-6784505207945273947:-8354726413445019164]]>
>       </update>
>    </changes>
> </partial-response>{noformat}
> My initial investigation leads me  to believe its' because of what is sent in the form. MyFaces uses the input directly, but Mojarra looks to update to the full id when creating the request.
> MyFaces:
> {code:java}
> jakarta.faces.partial.render    ":panel1 :panel2"{code}
> Mojarra:
> {code:java}
> j_id1:jakarta.faces.partial.render    "j_id1:panel1 j_id1:panel2"{code}
> See the Facelet code here: [https://github.com/jakartaee/faces/blob/master/tck/faces23/namespacedView/src/main/webapp/spec790WithNamespacedView.xhtml#L43-L44]
>  
> Test Code: [https://github.com/jakartaee/faces/blob/master/tck/faces23/namespacedView/src/test/java/ee/jakarta/tck/faces/test/javaee8/namespacedView/Spec790WithNamespacedViewIT.java#L74]
> Background Issue: [https://github.com/jakartaee/faces/issues/790]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)