Jump to content
We've recently updated our Privacy Statement, available here ×

saran1097

Members
  • Posts

    9
  • Joined

  • Last visited

saran1097's Achievements

Rookie

Rookie (2/14)

  • Week One Done
  • One Month Later
  • One Year In
  • First Post Rare
  • Conversation Starter Rare

Recent Badges

0

Reputation

  1. UPDATE: IBM has acknowledged the bug in Linux-WebSphere 6.1.0.45 and provided a test fix that worked in our testing environments - the failure was when performing line break measuring on a number of different truetype fonts loaded from file. Nothing is expected from JasperSoft at this point. Thanks. Hi, We have been running Jasper reports in our Struts based web application without any issues. Recently in one of our testing environment we have run into report generation failures. All the Jasper reports are failing in the below environment - whereas works fine in Windows environment running the same WebSphere patch level (WAS 6.1.0.45). Jasper Reports version: 4.0.1 The environment is: WebSphere Platform 6.1 [bASE 6.1.0.45 cf451235.03]Host Operating System is Linux, version 2.6.18-348.6.1.el5Java version = 1.5.0, Java Compiler = j9jit23, Java VM name = IBM J9 VM The stack trace we got is:[8/1/13 9:43:29:671 CDT] 0000004b SystemErr R java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0[8/1/13 9:43:29:671 CDT] 0000004b SystemErr R at sun.font.ExtendedTextSourceLabel.createCharinfo(ExtendedTextSourceLabel.java:568)[8/1/13 9:43:29:671 CDT] 0000004b SystemErr R at sun.font.ExtendedTextSourceLabel.getCharinfo(ExtendedTextSourceLabel.java:468)[8/1/13 9:43:29:671 CDT] 0000004b SystemErr R at sun.font.ExtendedTextSourceLabel.getLineBreakIndex(ExtendedTextSourceLabel.java:414)[8/1/13 9:43:29:671 CDT] 0000004b SystemErr R at java.awt.font.TextMeasurer.calcLineBreak(TextMeasurer.java:337)[8/1/13 9:43:29:671 CDT] 0000004b SystemErr R at java.awt.font.TextMeasurer.getLineBreakIndex(TextMeasurer.java:573)[8/1/13 9:43:29:671 CDT] 0000004b SystemErr R at java.awt.font.LineBreakMeasurer.nextOffset(LineBreakMeasurer.java:362)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at java.awt.font.LineBreakMeasurer.nextLayout(LineBreakMeasurer.java:444)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at java.awt.font.LineBreakMeasurer.nextLayout(LineBreakMeasurer.java:417)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.TextMeasurer.renderNextLine(TextMeasurer.java:611)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.TextMeasurer.renderParagraph(TextMeasurer.java:444)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.TextMeasurer.measure(TextMeasurer.java:397)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.JRFillTextElement.chopTextElement(JRFillTextElement.java:1130)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.JRFillTextField.prepare(JRFillTextField.java:554)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:329)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:419)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:378)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillTitle(JRVerticalFiller.java:328)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:262)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:864)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)[8/1/13 9:43:29:672 CDT] 0000004b SystemErr R at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624) DEBUG messages:[WebContainer : 2] INFO c.f.d.r.generators.ReportGenerator - Filling reports[WebContainer : 2] DEBUG n.s.j.engine.fill.JRBaseFiller - Fill 1417368699: created for SampleReport[WebContainer : 2] DEBUG n.s.j.engine.fill.JRBaseFiller - Fill 1417368699: filling report[WebContainer : 2] DEBUG n.s.j.engine.fill.JRBaseFiller - Fill 1417368699: adding page 1[WebContainer : 2] DEBUG n.s.j.engine.fill.JRVerticalFiller - Fill 1417368699: title[WebContainer : 2] INFO c.f.d.r.generators.ReportGenerator - Array index out of range: 0 All our reports have Arial fonts and the font is bundled as jar file and provided in the classpath for the web application. Please help. Please let me know if any more detail is needed from my side.Thanks in advance for your time and help, Saran
  2. SOLVED! Posting the solution here so that might be useful for others. I changed my report parameter to <parameter name="SUBREPORT1_DATA_SOURCE" class="net.sf.jasperreports.engine.data.JRCsvDataSource" isForPrompting="false"/> and changed the datasource for subreport as <dataSourceExpression><![CDATA[$P{SUBREPORT1_DATA_SOURCE}]]></dataSourceExpression> Instead of using the custom CsvDataSource as specified in the other post, I now pass the JRCsvDataSource from my java code as a report parameter, and then finally close and delete the file. Code snippet here: Thanks, Saran Code:JRCsvDataSource subreport = new JRCsvDataSource(csvFileName);subreport.setUseFirstRowAsHeader(true);reportParms.addParameter("SUBREPORT1_DATA_SOURCE", subreport);:::finally{ if(subreport!=null) { subreport.close(); File f=new File(csvFileName); if(f.exists() && f.isFile()){ boolean success = f.delete(); if (!success) { log.error("cleanUpLocalCSVFiles - could not delete swap file:"+csvFileName+" - Manual cleanup needed."); } else log.info("cleanUpLocalCSVFiles - DELETED swap file:"+csvFileName); }} Post Edited by saran1097 at 03/23/2012 22:55
  3. Hi, I have a main report with two sub-reports. The main report and sub-report2 are fed by JavaBeans data source and sub-report1 has its data source configured to a generated CSV file (the file name of the CSV data source is passed as a parameter; and this CSV file is a temporary file created by the Java module triggering the japser report). Everything is okay, the report gets generated - BUT after the report generation when my application tries to delete the temporary CSV file created for sub-report1, it fails to do so because the handle has not been released yet. This is the flow of my program: 1) Create ArrayList of elements for Main report and sub-report2 2) Create a temporary CSV file containing records for sub-report1 (Why is this required? our requirement is to support millions of records - and holding millions of data objects in memory kills the JVM even with heap size of 1.5GB - so we write the data object to a temporary file and pass this file as data source for the Jasper report - copy catted the JRSwapFile concept to eliminate memory issues) Note: at this point we close the BufferedWriter and the file does not have any handles. 3) Pass the temporary CSV file’s path as parameter and the ArrayList of objects for Main and Sub-report2 to Jasper4) Fill the report (now the CSV file has an handle) 5) Deliver the report 6) Try to delete the temporary file – this is where f.delete() fails because the file handle has not been released. Sub-report1’s data source is configured as <dataSourceExpression><![CDATA[new com.reports.datasource.CsvDataSource(new java.io.File($P{SUBREPORT1_DATA_SOURCE}), true)]]></dataSourceExpression> Based on the suggestions given by Peter in this post: http://jasperforge.org/plugins/espforum/view.php?group_id=102&forumid=103&topicid=15779&page=2 Please let me know how I can force the Jasper Fill process to release the file handle of the CSV data source once it is done filling the report. Thanks in advance for your time and help, Saran Other Details: JasperReports v 4.1.1 Struts, Java 1.5 application running in Windows/Apache tomcat and Unix/WebSphere application servers Post Edited by saran1097 at 03/22/2012 17:21 Post Edited by saran1097 at 03/22/2012 20:22
  4. Hi, I have gotten around the Class not found exception...now when I fill the reports from my web application, this is what I run into. Error evaluating expression : Source text : new com.reports.datasource.CsvDataSource(new java.io.File("C:\\csvFiles\\Activity.CSV"), ',', true) net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : Source text : new com.reports.datasource.CsvDataSource(new java.io.File("C:\\csvFiles\\Activity.CSV"), ',', true) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:203) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:589) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:557) at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:867) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:353) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:272) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:257) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:468) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2037) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:761) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:271) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:129) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:903) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:832) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
  5. Hi Peter, I follwed your instructions to create the custom CSVDataSource - but when I compile my reports after adding the PARAMETER sepecified by you, I keep running into a compilation error: net.sf.jasperreports.engine.JRRuntimeException: java.lang.ClassNotFoundException: com.reports.datasource.CsvDataSource Can you please provide me the Parameter details specified as "* Create a parameter to use as the subreport Data Source Expression:" in your post. I have a unique situation: where my main report is a collection of JavaBeans and Sub report has to be filled with a CSV data source already available in file system. If only we can specify the "Use First Row as Header Row" somehow in the subreport's data source expression all this problems will be solved. Thanks for your time and help, Saran
×
×
  • Create New...