struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lukasz Lenart (JIRA)" <j...@apache.org>
Subject [jira] [Closed] (WW-3348) IndexOutOfBoundsException in ValueStackDataSource
Date Fri, 11 Apr 2014 11:41:15 GMT

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

Lukasz Lenart closed WW-3348.
-----------------------------

    Resolution: Not a Problem

Please retest with the latest 2.3.17 version

> IndexOutOfBoundsException in ValueStackDataSource
> -------------------------------------------------
>
>                 Key: WW-3348
>                 URL: https://issues.apache.org/jira/browse/WW-3348
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Plugin - JasperReports
>    Affects Versions: 2.1.8
>         Environment: WinXP, Tomcat
>            Reporter: Mark Gorokhov
>             Fix For: 2.3.18
>
>
> 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 org.apache.struts2.views.jasperreports.ValueStackDataSource:
>     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:
>     public boolean next() throws JRException {
>         if (firstTimeThrough) {
>             firstTimeThrough = false;
>         } else {
>             if (valueStack.size() > 0) {
>                 valueStack.pop();
>             }
>         }
>         . . .
>     }
> Please test and implement in the next release.
> The following does not work (main report is generated partially, stops on empty valueStack
condition):
>     public boolean next() throws JRException {
>         if (firstTimeThrough) {
>             firstTimeThrough = false;
>         } else {
>             if (valueStack.size() == 0) {
>                 return false;
>             }
>             valueStack.pop();
>         }
>         . . .
>     }



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message