java.lang.ClassCastException: java.lang.Long cannot be cast to java.math.BigDecimal

Bug #1019168 reported by Tadeus Prastowo
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Domsense Agile BG OpenERP Addons
Won't Fix
Undecided
Unassigned

Bug Description

When previewing http://bazaar.launchpad.net/~domsense/domsense-agilebg-addons/6.0/account_report_jasper_cashflow/report/jasper_free_cashflow.jrxml and http://bazaar.launchpad.net/~domsense/domsense-agilebg-addons/6.0/account_report_jasper_cashflow/report/jasper_operating_cashflow.jrxml under iReport 4.5.0, the following error is encountered:

Error filling print... java.lang.Long cannot be cast to java.math.BigDecimal
java.lang.ClassCastException: java.lang.Long cannot be cast to java.math.BigDecimal
    at net.sf.jasperreports.engine.fill.JRBigDecimalSumIncrementer.increment(JRBigDecimalIncrementerFactory.java:303)
    at net.sf.jasperreports.engine.fill.JRAbstractExtendedIncrementer.increment(JRAbstractExtendedIncrementer.java:42)
    at net.sf.jasperreports.engine.fill.JRCalculator.estimateVariables(JRCalculator.java:182)
    at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:862)
    at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:837)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1434)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:126)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:836)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:746)
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)
    at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:879)
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

Revision history for this message
Tadeus Prastowo (tadeus-prastowo) wrote :
Revision history for this message
Tadeus Prastowo (tadeus-prastowo) wrote :

After applying the above patch, iReport 4.5.0 reports the following error:

Error filling print... java.lang.Long cannot be cast to java.lang.String
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String
    at net.sf.jasperreports.engine.fill.JRFillElement.evaluateProperties(JRFillElement.java:1413)
    at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:419)
    at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:406)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:257)
    at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:473)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2021)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:755)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:265)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:836)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:746)
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)
    at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:879)
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

Revision history for this message
Tadeus Prastowo (tadeus-prastowo) wrote :

After applying the previous patch, iReport 4.5.0 reports the following error:

Error filling print... Error executing SQL statement for : cash_flow
net.sf.jasperreports.engine.JRException: Error executing SQL statement for : cash_flow
    at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:229)
    at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:731)
    at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:629)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1159)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:802)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:746)
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)
    at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:879)
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

Caused by: org.postgresql.util.PSQLException: ERROR: integer out of range
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1592)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1327)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
    at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:222)
     ... 11 more

The error is caused by the limitation on the monetary amount reported. Specifically, the monetary amount is cast into integer with the assumption that no company is rich enough to have more than EUR 2 billions. The cast into integer is intended to reduce rounding errors. Unfortunately, an Indonesian company can easily exceed the monetary amount of IDR 2 billions causing integer overflow exception thrown by PostgreSQL.

Revision history for this message
Leonardo Pistone (lepistone) wrote :

Dear Tadeus,

We're sorry we're not mantaining this module anymore (that's why it's not in the 6.1 and trunk branches). If you find a fix, feel free to branch.

Thanks!

Changed in domsense-agilebg-addons:
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.