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

Tang Yongkang updated TOMAHAWK-1198:
------------------------------------

    Status: Patch Available  (was: Open)

> submit a t:datatable accurred NullPointerException In 
> org.apache.myfaces.component.html.ext.HtmlDataTable.updateModelFromPreservedDataModel
> -------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TOMAHAWK-1198
>                 URL: https://issues.apache.org/jira/browse/TOMAHAWK-1198
>             Project: MyFaces Tomahawk
>          Issue Type: Bug
>          Components: Extended Datatable
>    Affects Versions: 1.1.6
>         Environment: myfaces-api-1.1.5.jar
> myfaces-impl-1.1.5.jar
> tomahawk-1.1.6.jar
> apache-tomcat-6.0.16
>            Reporter: Tang Yongkang
>   Original Estimate: 0.33h
>  Remaining Estimate: 0.33h
>
> It occured a NullPointerException when submitted a "t:datatable".
> I set a "t:datatable" as follow:
> <t:dataTable id="searchResult" preserveDataModel="true" 
> value='#{testBean.formData["employeeList"]}' var="list" border="1">
> testBean: BackingBean
> formData: an Object of  HashMap type
> formData["employeeList"] contains a ArrayList Object which  was the datas 
> searched form database.
> When submit this form, it occures NullPointerException(From Tomcat).
> 2008-2-17 15:56:39 org.apache.catalina.core.StandardWrapperValve invoke
> Serious: Servlet.service() for servlet Faces Servlet threw exception
> java.lang.NullPointerException
>       at 
> org.apache.myfaces.component.html.ext.HtmlDataTable.updateModelFromPreservedDataModel(HtmlDataTable.java:502)
>       at 
> org.apache.myfaces.component.html.ext.HtmlDataTable.processUpdates(HtmlDataTable.java:464)
>       at 
> javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:648)
>       at javax.faces.component.UIForm.processUpdates(UIForm.java:90)
>       at 
> javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:648)
>       at javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:160)
>       at 
> org.apache.myfaces.lifecycle.UpdateModelValuesExecutor.execute(UpdateModelValuesExecutor.java:33)
>       at 
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
>       at 
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
>       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>       at java.lang.Thread.run(Thread.java:595)
> I track the Tomahawk  source and found  the following source:
> 501:        List lst = (List) dm.getWrappedData();
> 502:        if (lst.size() > 0)
> 503:        {
> 504:            vb.setValue(context, lst.get(0));
> 505:        }
> 506:        else
> 507:        {
> 508:            vb.setValue(context, null);
> 509:        }
> I think if the "lst" object is empty(size() == 0), the "context" was set to 
> null,
> So, when "lst" obeject is null, the "context"  also should be set to null, so 
> I changed the source at my local as folloing,
> ant it runs.
> 501:        List lst = (List) dm.getWrappedData();
> 502:        if (lst != null && lst.size() > 0)
> 503:        {
> 504:            vb.setValue(context, lst.get(0));
> 505:        }
> 506:        else
> 507:        {
> 508:            vb.setValue(context, null);
> 509:        }

-- 
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