Hi everyone.
Withn our SmartPOS project (almost finishing migration) We have a simple custom jasper report (with their .jrxml and .jasper files),after the migration we are getting this error; (see full stack at the end)
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.math.BigDecimal
We already double checked and compared all the database tables and Active dictionary report parameter definitions and they looked the same, also we copied the report files under the reports folder without any changes (same that works in adempiere 3.6.1) and checking the code of the internal class: JRJdbcQueryExecuter.java looks something wrong in the casting conversion of jasper parameters, but I am not sure why my parameters are firing that Integer to BigDecimal casting exception.. the parameter definition wih the AD for this report are only:
2. DateInvoiced Date (Range)
a. Is it required any other datatype conversion, data mapping or any other fix before migrated these jasper report files to the new jasper engine on Idempiere 1.0c ?
I also enclosed the jasper report ... and here the exception stack, in case you can suggest something that we didn´t see.
19/08/2013 05:29:55 PM org.adempiere.util.ProcessUtil startJavaProcess
SEVERE: org.compiere.report.ReportStarter
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.math.BigDecimal
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.setStatementParameter(JRJdbcQueryExecuter.java:553)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.setStatementParameter(JRJdbcQueryExecuter.java:399)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter$1.visit(JRJdbcQueryExecuter.java:332)
at net.sf.jasperreports.engine.query.JRAbstractQueryExecuter$QueryParameter.accept(JRAbstractQueryExecuter.java:157)
at net.sf.jasperreports.engine.query.JRAbstractQueryExecuter.visitQueryParameters(JRAbstractQueryExecuter.java:646)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createStatement(JRJdbcQueryExecuter.java:317)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:196)
at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1087)
at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:668)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1281)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:900)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:845)
at org.compiere.report.ReportStarter.startProcess0(ReportStarter.java:614)
at org.compiere.report.ReportStarter.startProcess(ReportStarter.java:345)
at org.adempiere.util.ProcessUtil.startJavaProcess(ProcessUtil.java:172)
at org.compiere.apps.AbstractProcessCtl.startProcess(AbstractProcessCtl.java:466)
at org.compiere.apps.AbstractProcessCtl.run(AbstractProcessCtl.java:272)
at org.adempiere.webui.apps.WProcessCtl.process(WProcessCtl.java:158)
at org.adempiere.webui.apps.ProcessDialog$ProcessDialogRunnable.doRun(ProcessDialog.java:852)
at org.adempiere.util.ContextRunnable.run(ContextRunnable.java:38)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)