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