[MyFaces 2.3.X] Weird error on InternetExplorer 11

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[MyFaces 2.3.X] Weird error on InternetExplorer 11

Juri Berlanda
Hello,

I noticed a very weird error affecting MyFaces 2.3.0 and 2.3.1 in
combination with IE 11 (and maybe other IEs, we only test against IE
11). Chrome, Firefox and Edge seem to NOT be affected.

On IE when _applyJSFArtifactValueToForm() is run as part of
processResponse() it might occur that indexOf() is called on undefined,
since e.name can be undefined in IE 11 if something like e.g. a
<filedset> is inside the Form and it has no name set. For the other
Browsers this resolves to e.name (in line 242 in _AjaxResponse.js, HEAD
@ Tag myfaces-core-module-2.3.1) being "" (i.e. empty String), which
seems to be a great idea for a sensible default. But not so for IE 11:
it has e.name undefined, hence calling indexOf() on it causes a
TypeError, which in turn leads for any hidden input (e.g. ViewState) to
not be updated.

In our stack (MyFaces with Primefaces and DeltaSpike) this leads to
WindowScope not being active after the Response of the first Ajax is
processed.

The issue can be fixed with the patch appended to this EMail.

MyFaces 2.2.12 is NOT affected.

If further work is needed I am happy to help.

Kind regards,

Juri Berlanda


0001-Fix-TypeError-in-IE-11.patch (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [MyFaces 2.3.X] Weird error on InternetExplorer 11

Thomas Andraschko-4
Hey,

There already is a ticket about it, it will be fixed in the next release.

Am Mittwoch, 9. Mai 2018 schrieb Juri Berlanda :

> Hello,
>
> I noticed a very weird error affecting MyFaces 2.3.0 and 2.3.1 in
> combination with IE 11 (and maybe other IEs, we only test against IE 11).
> Chrome, Firefox and Edge seem to NOT be affected.
>
> On IE when _applyJSFArtifactValueToForm() is run as part of
> processResponse() it might occur that indexOf() is called on undefined,
> since e.name can be undefined in IE 11 if something like e.g. a
> <filedset> is inside the Form and it has no name set. For the other
> Browsers this resolves to e.name (in line 242 in _AjaxResponse.js, HEAD @
> Tag myfaces-core-module-2.3.1) being "" (i.e. empty String), which seems to
> be a great idea for a sensible default. But not so for IE 11: it has
> e.name undefined, hence calling indexOf() on it causes a TypeError, which
> in turn leads for any hidden input (e.g. ViewState) to not be updated.
>
> In our stack (MyFaces with Primefaces and DeltaSpike) this leads to
> WindowScope not being active after the Response of the first Ajax is
> processed.
>
> The issue can be fixed with the patch appended to this EMail.
>
> MyFaces 2.2.12 is NOT affected.
>
> If further work is needed I am happy to help.
>
> Kind regards,
>
> Juri Berlanda
>
>