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

Werner Punz edited comment on MYFACES-3178 at 6/18/11 6:54 PM:
---------------------------------------------------------------

Marking this error as jsf.js error in the header so that it is not lost.


      was (Author: werpu):
    Marking this error as jsf.js error in the header so that it is not lost on 
monday.

  
> jsf.js: 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

        

Reply via email to