[
https://issues.apache.org/jira/browse/MYFACES-4672?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17856855#comment-17856855
]
Volodymyr Siedlecki commented on MYFACES-4672:
----------------------------------------------
Thanks!
I did tried adding the function, but it caused other errors in their
application. The XHR did not contain the form data in the request – it was
formatted differently.
When I decorated the form data object, the request had:
{color:#1d1c1d}j_id_a:j_id_d=[object File] j_id_a_SUBMIT=1
javax.faces.ViewState=etXhe99OOEwGmJMwtxyC6OvI0hBYMSNfhRFQFlnPdIp07mF2KWgN0fDLNVqbkvHTdDOAWQ==
javax.faces.behavior.event=change javax.faces.partial.event=change
javax.faces.source=j_id_a:j_id_d javax.faces.partial.ajax=true
javax.faces.partial.execute=j_id_a:j_id_d j_id_a=j_id_a{color}
It should look more like this:
{color:#cccccc}-----------------------------10818876671980492753015449693{color}
{color:#cccccc}Content-Disposition: form-data{color}{color:#6a9955};
name="j_id_a:j_id_d"; filename="1.txt"{color}
{color:#cccccc}Content-Type: text/plain{color}
{color:#cccccc}1{color}
{color:#cccccc}-----------------------------10818876671980492753015449693{color}
{color:#cccccc}Content-Disposition: form-data{color}{color:#6a9955};
name="j_id_a_SUBMIT"{color}
{color:#cccccc}1
{color}
> Uncaught TypeError: G.hasKey is not a function
> ----------------------------------------------
>
> Key: MYFACES-4672
> URL: https://issues.apache.org/jira/browse/MYFACES-4672
> Project: MyFaces Core
> Issue Type: Bug
> Affects Versions: 2.2.16
> Reporter: Volodymyr Siedlecki
> Assignee: Werner Punz
> Priority: Major
>
> This affects 2.2 which I know is out of date, but I have a user of MyFaces
> 2.2 who needs this bug fixed.
> I ported MYFACES-4606 to 2.2 here:
> [https://github.com/apache/myfaces/pull/647]
> 4606 was applied to 2.3, so I applied the same fix to 2.2. However, I didn't
> realize that _AjaxRequestLevel2 was removed from 2.3 in this PR:
> [https://github.com/apache/myfaces/pull/415/files]
> _AjaxRequestLevel2 still exists in the 2.2 codebase.
> This mean that `if(targetBuf.hasKey(identifier))` was called from
> _AjaxRequestLevel2's getFormData which does not decorate the FormData to
> include the hasKey method – thus we get " G.hasKey is not a function".
> [https://github.com/volosied/myfaces/blob/d5d28a0e6cae3ea22e021c64ecf474d6352bf900/api/src/main/javascript/META-INF/resources/myfaces/_impl/xhrCore/_AjaxRequestLevel2.js#L32-L44]
> This error is reproducible via multi-part form requests that use ajax.
> What is the proper fix here? I'll create a draft PR for what I think is
> correct.
> Thanks!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)