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

isIgnorePagination - Hangs in a Scriptlet report


raffimd

Recommended Posts

Hi,

In a jasperreport, I observed I was using isIgnorePagination is set to true. I have removed that, the report is hanging after the JRDataSource calls (next()) gets complete.

I use Scriptlet in this report to generate the data for the Pie Chart which is printed in the Summary Page.

 

If I add the isIgnorePagination="true", it is working fine. Since I use Virtualizer, I do not want to set the

isIgnorePagination attribute to true.

 

Any clues, why the report is hanging when I set the isIgnorePagination attribute to true?

Link to comment
Share on other sites

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

When I ran the report with debug log level, I found that the JasperReports engine is ending up StackOverFlow condition.

Code:

Caused by: net.sf.jasperreports.engine.JRRuntimeException: java.lang.StackOverflowError
at net.sf.jasperreports.engine.fill.JRFillSubreport.prepare(JRFillSubreport.java:614)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:343)
at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:323)
at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:282)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummarySamePage(JRVerticalFiller.java:888)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummary(JRVerticalFiller.java:820)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportEnd(JRVerticalFiller.java:263)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:120)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:767)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:690)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at com.lucent.qip.reports.PagedDataReportGenerator.fillReport(PagedDataReportGenerator.java:47)
at com.lucent.qip.reports.JasperReportGenerator.generateReport(JasperReportGenerator.java:273)
at com.lucent.qip.reports.JasperReportFactory.generateReport(JasperReportFactory.java:36)
at com.lucent.qip.service.impl.ReportsServiceImpl.generateReport(ReportsServiceImpl.java:214)
... 95 more
Caused by: java.lang.StackOverflowError
at java.util.HashMap$EntryIterator.<init>(HashMap.java:831)
at java.util.HashMap$EntryIterator.<init>(HashMap.java:831)
at java.util.HashMap.newEntryIterator(HashMap.java:845)
at java.util.HashMap$EntrySet.iterator(HashMap.java:949)
at java.util.AbstractMap.hashCode(AbstractMap.java:459)

 

HashMap and AbstractMap calls goes into infinitive recusrsive loop.

If I remove the subreports in the summary, the report is coming up.

Can't I populate JRDataSource implementation using a scriptlet and use that datasource for the chart subreport in the summary?

Link to comment
Share on other sites

I included the src of the jasperreports in Eclipse and debugged. Looks like it has some problem printing the subreport in the summary. Don't know whether it was a Java Continuation problem, or Virtualizer problem.

Just before the StackFlow error, I got the following stack

 

Code:

JRVerticalFiller.addPage(boolean) line: 1182
JRVerticalFiller.fillTitle() line: 285
JRVerticalFiller.fillReportStart() line: 224
JRVerticalFiller.fillReport() line: 113
JRVerticalFiller(JRBaseFiller).fill(Map) line: 767
JRVerticalFiller(JRBaseFiller).fill(Map, JRDataSource) line: 690
JRFillSubreport.fillSubreport() line: 515
JRContinuationSubreportRunner(JRSubreportRunnable).run() line: 63
StackRecorder.execute(Object) line: 95
Continuation.continueWith(Continuation, Object) line: 170
Continuation.startWith(Runnable, Object) line: 129
Continuation.startWith(Runnable) line: 102
JRContinuationSubreportRunner.start() line: 57
JRFillSubreport.prepare(int, boolean) line: 589
JRFillBand(JRFillElementContainer).prepareElements(int, boolean) line: 343
JRFillBand.fill(int, boolean) line: 323
JRFillBand.fill(int) line: 282
JRVerticalFiller.fillSummarySamePage() line: 888
JRVerticalFiller.fillSummary() line: 820

 

After this, in JRVerticalFiller.addPage() - Line 1185, the code is suspending the Continuation Subreport Runner. I could not understand why it is suspending...

After that See the StackOverFlow Error.

 

Does anyone use Javaflow and Virtualizer together and have Subreport in the Summary band?

 

Any help is really appreciated.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...