myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Werner Punz (JIRA)" <...@myfaces.apache.org>
Subject [jira] [Commented] (MYFACES-3178) Calling jsf.getViewState() with a direct reference to a form element throws an exception
Date Sat, 18 Jun 2011 18:49:47 GMT

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

Werner Punz commented on MYFACES-3178:
--------------------------------------

Thanks for reporting this bug and adding a patch, I will review and apply it the next few
days probably on monday.


> Calling jsf.getViewState() with a direct reference to a form element throws an exception
> ----------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3178
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3178
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: General, JSR-314
>    Affects Versions: 2.1.0, 2.1.1
>         Environment: Client
>            Reporter: Deryk Sinotte
>         Attachments: MYFACES-3178.patch, getViewState.xhtml
>
>
> The jsf.getViewState() function is a standard part of the JSF client API.  Currently,
if I call this function with a valid reference to a form object, an exception is thrown. 
Firefox 4 (with Firebug) reports it as:
> this._onException is not a function
> I believe the problem stems from the getViewState implementation itself in Impl.js:
>     getViewState : function(form) {
>         /**
>          *  typecheck assert!, we opt for strong typing here
>          *  because it makes it easier to detect bugs
>          */
>         if (form) {
>             form = this._Lang.byId(form);
>         }
>         if (!form
>                 || !form.nodeName
>                 || form.nodeName.toLowerCase() != "form") {
>             throw new Error(this._Lang.getMessage("ERR_VIEWSTATE"));
>         }
>         var ajaxUtils = new myfaces._impl.xhrCore._AjaxUtils(0);
>         var ret = this._Lang.createFormDataDecorator([]);
>         ajaxUtils.encodeSubmittableFields(ret, null, null, form, null);
>         return ret.makeFinal();
>     },
> In that function, some checking is done to ensure that the form is a valid reference,
then a new AjaxUtils is created with no parameters. Typically these would be warning and exception
handlers.  Since these handlers are missing, when encodeSubmittable fields runs into a problem
and tries to use the handler, the above noted exception occurs.
> When encodeSubmittableFields is called, the form reference is set as the parameter expected
for an individual form item and the parentItem is null.  I believe the form should be set
as the parent item:
>         ajaxUtils.encodeSubmittableFields(ret, null, null, null, form, null);
> By setting it as the parent item, the encoding logic should be able to handle it correctly.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message