A user encountered NumberFormatException when trying to export to any output format from any crosstab ad hoc view in TIBCO JasperReports® Server AdHoc designer. The error stack is as the following:
2018-01-30 00:31:42,524 ERROR AsyncJasperPrintAccessor,pool-7-thread-45:299 - Error during report execution java.lang.NumberFormatException: For input string: "100.000" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:492) at java.lang.Integer.parseInt(Integer.java:527) at net.sf.jasperreports.engine.JRPropertiesUtil.asInteger(JRPropertiesUtil.java:233) at net.sf.jasperreports.engine.JRPropertiesUtil.getIntegerProperty(JRPropertiesUtil.java:621) at net.sf.jasperreports.crosstabs.fill.calculation.BucketingService.<init>(BucketingService.java:154) at net.sf.jasperreports.crosstabs.fill.calculation.CrosstabBucketingService.<init>(CrosstabBucketingService.java:59) at net.sf.jasperreports.engine.fill.JRFillCrosstab.createService(JRFillCrosstab.java:499) at net.sf.jasperreports.engine.fill.JRFillCrosstab.initBucketingService(JRFillCrosstab.java:667) at net.sf.jasperreports.engine.fill.JRFillCrosstab$JRFillCrosstabDataset.customInitialize(JRFillCrosstab.java:1167) at net.sf.jasperreports.engine.fill.JRFillElementDataset.initialize(JRFillElementDataset.java:141) at net.sf.jasperreports.engine.fill.JRCalculator.initializeDataset(JRCalculator.java:549) at net.sf.jasperreports.engine.fill.JRCalculator.initializeVariables(JRCalculator.java:315) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:246) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:124) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:540) at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:120) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$SynchronousExecutor.execute(EngineServiceImpl.java:882) at net.sf.jasperreports.engine.fill.BaseFillHandle.startFill(BaseFillHandle.java:165) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$AsynchronousReportFiller.fillReport(EngineServiceImpl.java:838) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1727) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runWithDataSource(EngineServiceImpl.java:1082) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runReport(EngineServiceImpl.java:1011) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportRunnable.run(EngineServiceImpl.java:904) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)
After debugging the system, it was determined that the root cause of the error was that crosstab limit properties setting in jasperreports.properties file (under deployed WEB-INFclasses directory) was incorrect:
net.sf.jasperreports.crosstab.bucket.measure.limit=100.000
After changing this setting to
net.sf.jasperreports.crosstab.bucket.measure.limit=100000< /pre>
and restarted the server, the error was gone.
TTC-20180130
Recommended Comments
There are no comments to display.