[#4756] - Report preview throws class cast exception using Studio 6.0.4 with backward compatibility (4.5.0) when using a custom Java Bean on field name

Category:
Bug report
Priority:
Normal
Status:
New
Project: Severity:
Minor
Resolution:
Open
Component: Reproducibility:
Always
Assigned to:

Hello,
I am using Jasper Studio 6.0.4, Java 1.7.0_79 to upgrade one of the reports from Jasper Reports 4.1.3 but still be backward compatible with Jasper Reports 4.5.0.

The report has a field name "address" defined as class type "test.Address" and the XML source contains the following text

<field name="address" class="test.Address">
<fieldDescription><![CDATA[address]]></fieldDescription>
</field>
<field name="name" class="java.lang.String">
<fieldDescription><![CDATA[name]]></fieldDescription>
</field>

But when I preview it on Studio 6.0.4, it throws an exception

net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text: $F{address}.getStreet()
at com.jaspersoft.studio.editor.preview.view.control.ReportControler.fillReport(ReportControler.java:506)
at com.jaspersoft.studio.editor.preview.view.control.ReportControler.access$20(ReportControler.java:481)
at com.jaspersoft.studio.editor.preview.view.control.ReportControler$5.run(ReportControler.java:362)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text: $F{address}.getStreet()
at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:264)
at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:610)
at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:578)
at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:1015)
at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:572)
at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:556)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:258)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:454)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2029)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:755)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:262)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:122)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:551)
at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:119)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassCastException: test.Address cannot be cast to test.Address
at nmsn_1432152224150_26912.evaluate(nmsn_1432152224150_26912:334)
at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:251)
... 14 more

Can you please provide a solution for this?

v6.0.4
adivik's picture
1
Joined: Jan 22 2010 - 2:44pm
Last seen: 1 year 6 months ago

2 Comments:

#1

You know this is still a bug if you use the standalone version of Jasper Studio 6.0.4. But when I install the Studio software as an Eclipse plugin, it works just fine and I am able to preview the report and still have it backward compatible with Jasper Reports 4.5.0 version.

Also, the Eclipse plugin works with Java 8 SDK as well. Hope this helps someone.

#2
  • Assigned:nobody» chicuslavic

could you attach your report, your class, tell me what is in your classpath, maybe zip a sample project, this will help debugging

Feedback
randomness