IndexOutOfBoundsException in ValueStackDataSource
-------------------------------------------------
Key: WW-3348
URL: https://issues.apache.org/struts/browse/WW-3348
Project: Struts 2
Issue Type: Bug
Components: Plugin - JasperReports
Affects Versions: 2.1.8
Environment: WinXP, Tomcat
Reporter: Mark Gorokhov
Scenario:
- Jasper report with 4 subreports.
- Subreports content is provided from
org.apache.struts2.views.jasperreports.ValueStackDataSource
Exception
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
is thrown from:
public boolean next() throws JRException {
if (firstTimeThrough) {
firstTimeThrough = false;
} else {
valueStack.pop(); <== throws exception
}
. . .
}
Exception is thrown if the last row from subreport fits the current page and a
new page is started. Thus the exception is data dependent.
The following workaround works nicely:
if (valueStack.size() > 0) {
valueStack.pop();
}
Please test and implement in the next release.
The following does not work (cuts off the main report on empty valueStack
condition):
if (valueStack.size() == 0) {
return false;
}
valueStack.pop();
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.