NullPointerException when binding HtmlDataTable to backing bean
---------------------------------------------------------------
Key: MYFACES-431
URL: http://issues.apache.org/jira/browse/MYFACES-431
Project: MyFaces
Type: Bug
Components: Tomahawk
Versions: 1.0.9 beta
Environment: Windows XP, Jboss 3.2.6, Internet Explorer
Reporter: Paweł Kołoszko
Priority: Critical
I have page.jsp with datatable and a button:
<x:dataTable id="listarodzajepism" value="#{listRodzajePism.rodzajePism}"
var="rodzajPisma" border="0"
styleClass="standardTable"
headerClass="standardTable_SortHeader"
rowClasses="standardTable_Row1,standardTable_Row2"
footerClass="standardTable_Footer"
sortColumn="#{listRodzajePism.sort}"
sortAscending="#{listRodzajePism.ascending}"
preserveDataModel="true"
preserveSort="true"
rows="24"
binding="#{listRodzajePism.jsfDataTable}">
... column, column, column ...
</x:dataTable>
<h:commandButton id="cb" value="NewPage" action="newpage"/>
Action "newpage" of commandbutton opens page2.jsp with only one button:
<h:commandButton id="button"
value="Cancel"
action="back"
immediate="true"/>
Action "back" goes back to page.jsp. And here the problem occurs becuase I
receive an error:
javax.faces.FacesException: Could not get property rows of component
rodzajepismview:listarodzajepism Caused by:
java.lang.NullPointerException
at
org.apache.myfaces.component.html.ext.HtmlDataTable.getRows(HtmlDataTable.java:547)
When I open page.jsp everything is OK, but action page.jsp -> page2.jsp ->
page.jsp cause an error.
In my backing bean I have:
private HtmlDataTable jsfDataTable;
public HtmlDataTable getJsfDataTable() {
return jsfDataTable;
}
public void setJsfDataTable(HtmlDataTable jsfDataTable) {
this.jsfDataTable = jsfDataTable;
}
Backing bean is session scoped. When binding="#{listRodzajePism.jsfDataTable}"
is removed from x:datatable tag, everyhing works just fine.
I spent some time debugging and here are the results:
Exception is thrown in getRows() method of
org.apache.myfaces.component.html.ext.HtmlDataTable when command
return ((_SerializableDataModel)_dataModel).getRows();
is invoked. Cause of exception: _dataModel is null. This line is invoked only
when _isDataModelRestored = true. I checked that when I open page2.jsp
_dataModel is created and _isDataModelRestored is set to true. But when I
return to page1.jsp from page2.jsp, setValueBinding method is invoked and
_dataModel is set to null. But _isDataModelRestored is still true.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira