Reputation: 1533
I am using JSF2.0 with PrimeFaces3.1 and Spring3.1 for Business logic.I was trying to use a DataTable- Lazy loading. But It is giving me the following error. Kindly help.
An Error Occurred:
/ by zero
- Stack Trace
java.lang.ArithmeticException: / by zero
at org.primefaces.model.LazyDataModel.setRowIndex(LazyDataModel.java:62)
at javax.faces.component.UIData.setRowIndex(UIData.java:448)
at javax.faces.component.UIData.visitColumnsAndRows(UIData.java:1544)
at javax.faces.component.UIData.visitTree(UIData.java:1212)
Please help.
Upvotes: 5
Views: 5980
Reputation: 129
This answer is derivative to Alfaville's answer, but if you happen to have set a field named pageSize
in your LazyDataTable
descendant it may cause the same problem. This was the case with me and I didn't see the problem until I saw the Override of setRowIndex
.
Upvotes: 0
Reputation: 553
You must override the method setRowIndex
Example:
@Override
public void setRowIndex( int rowIndex ) {
if ( rowIndex == -1 || getPageSize() == 0 ) {
super.setRowIndex( -1 );
} else
super.setRowIndex( rowIndex % getPageSize() );
}
Upvotes: 11
Reputation: 37061
Its seems like a know issue
datatable: java.lang.ArithmeticException: / by zero
Issue 1544: LazyDataTable.setRowIndex throws arithmetic exception: division by 0.
It has a FIX/WORKAROUND (so claimed by some user)
Upvotes: 6