[ https://issues.apache.org/jira/browse/WW-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15988579#comment-15988579 ]
ASF GitHub Bot commented on WW-3698: ------------------------------------ Github user DenizR commented on the issue: https://github.com/apache/struts/pull/71 This bug orrurs after the struts2 version 2.3.15.3 (Oct 2013) although it will be stated that the error has been fixed https://issues.apache.org/jira/browse/WW-3698 When can one expect a solution? > jasperreports plugin's ValueStackDataSource converts field values in > ValueStackDataSource even when it's not wanted > ------------------------------------------------------------------------------------------------------------------- > > Key: WW-3698 > URL: https://issues.apache.org/jira/browse/WW-3698 > Project: Struts 2 > Issue Type: Bug > Components: Plugin - JasperReports > Affects Versions: 2.2.3.1 > Environment: Tomcat 7 application server, Jasperreports 4.1.1 > Reporter: Dario Tortola > Assignee: Lukasz Lenart > Priority: Minor > Labels: patch > Fix For: 2.3.20 > > Original Estimate: 20m > Remaining Estimate: 20m > > Report A with Subreport B > Subreport B's datasource is a java.util.List field of Report A's datasource's > elements > org.apache.struts2.views.jasperreports.ValueStackDataSource.getFieldValue, > after locating the value, if > org.apache.struts2.util.MakeIterator.isIterable(value) instead of value a new > ValueStackDataSource over value is returned. > Since ValueStackDataSource is not a java.util.List, a > javax.servlet.ServletException is thrown when the returned > ValueStackDataSource fails to be cast to List > To avoid such unwanted conversion it's enough to change this code on > ValueStackDataSource.getFieldValue > {code:java} > if (MakeIterator.isIterable(value)) { > return new ValueStackDataSource(this.valueStack, expression); > } else { > return value; > } > {code} > replace (MakeIterator.isIterable(value)) with > (!field.getValueClass().isInstance(value) && MakeIterator.isIterable(value)) > for the new ValueStackDataSource to be returned only if the value is not > already what the field asks for -- This message was sent by Atlassian JIRA (v6.3.15#6346)