[ 
https://issues.apache.org/struts/browse/SHALE-406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary VanMatre reassigned SHALE-406:
-----------------------------------

    Assignee: Gary VanMatre

> ConverterHelper produce NullPointerException by calling Converter with 
> uiComponent = null parameter during restore view phase.
> ------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SHALE-406
>                 URL: https://issues.apache.org/struts/browse/SHALE-406
>             Project: Shale
>          Issue Type: Bug
>          Components: Core, View
>    Affects Versions: 1.0.4
>         Environment: Facelets 1.1.12, MyFaces 1.1.5-SNAPSHOT , Tomahawk 
> 1.1.5-SNAPSHOT
>            Reporter: Ingo Dueppe
>            Assignee: Gary VanMatre
>
> I had an backing bean class with the following property:
> @Property{value="#{param.enrollmentId}")
> private Long enrollmentId;
> And this ends up that shale calls the
> getAsObject method javax.faces.convert.LongConverter of 
> MyFaces-1.1.5-SNAPSHOT during the restore view phase .
> This method expects an uiComponent not null otherwise it throws a
> NullPointerException. But this method is called by the
> org.apache.shale.util.ConverterHelper during create view and therefore
> the facesContext setViewRoot is still null. So the below code of the 
> ConverterHelper
> end ups in a NullPointerException in this situation.
>     public Object asObject(FacesContext context, Class type, String value) {
>         if (String.class == type) {
>             return value;
>         }
>         return converter(context, 
> type).getAsObject(context,context.getViewRoot(), value);
>     } 
> There are also some other parts in the ConverterHelper class that depends on 
> that viewRoot is not null.
> Well the jsf - 1.1 spec says that the getAsObject method is called during the 
> apply request values phase. 
> As far as I understood it myfaces doesn't use the converter to initialize the 
> beans also. Instead it uses the Coercions class of common-el to convert 
> #{param.enrollmentId}.
> Btw.: As workaround, define your own ConverterClass that can handle that the 
> component parameter is null.
> - Ingo

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to