You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Ben Morgan (JIRA)" <ji...@apache.org> on 2008/08/20 13:05:24 UTC

[jira] Commented: (WW-2333) ValueStackDataSource implementation leads to class cast exceptions

    [ https://issues.apache.org/struts/browse/WW-2333?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44583#action_44583 ] 

Ben Morgan commented on WW-2333:
--------------------------------

As I understand it, to view collections in a standalone iReport, you would need to perform the extra work of creating a JRDataSource implementation as a source for a subreport to view Collection properties of a JavaBean.

A report for Struts2 does not need to do this, as the ValueStackDataSource does the lifting for you by creating a JRDataSource for any Iterable property.

So any report with a subreport on a collection that works for standalone iReport, will also work for Struts2 - the ValueStackDataSource doesn't recognise the JRDataSource property and just passes it through unaffected. The opposite is not true, however, I feel that taking this away, forces Struts2 developers to make reports usable in standalone iReport, where some simply don't need that functionality.

> ValueStackDataSource implementation leads to class cast exceptions
> ------------------------------------------------------------------
>
>                 Key: WW-2333
>                 URL: https://issues.apache.org/struts/browse/WW-2333
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Plugin - JasperReports
>    Affects Versions: 2.0.11
>            Reporter: Thorsten Schäfer
>             Fix For: Future
>
>
> Assume you have a class Foo that has a Collection of Bar's. Without using Struts, the expected behavior of a report that takes Foo's as input is, that a reference $F{bar} returns a java.util.Collection (of Bar's). However, this will not be the case when using the ValueStackDataSource implementation; an instance of ValueStackDataSource is returned instead of a collection. If the method "getFieldValue" gets called, it checks if the field value is iteratable (which is true for collections) and then returns a new ValueStackDataSource instead of the field value itself. I assume that this behavior breaks many reports.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.