net.sf.jasperreports.engine.JRRuntimeException: java.lang.StackOverflowError

UPDATED: 09 November 2015
I got following exception when one of my table in Jasper report grows to next page.
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.engine.fill.BaseReportFiller).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
net.sf.jasperreports.engine.JRRuntimeException: java.lang.StackOverflowError
 at net.sf.jasperreports.engine.fill.JRFillSubreport.prepare(JRFillSubreport.java:872)
 at net.sf.jasperreports.components.table.fill.FillTableSubreport.prepareSubreport(FillTableSubreport.java:166)
 at net.sf.jasperreports.components.table.fill.FillTable.prepare(FillTable.java:417)
 at net.sf.jasperreports.engine.fill.JRFillComponentElement.prepare(JRFillComponentElement.java:150)
 at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:330)
 at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:382)
 at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:357)
 at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2031)
 at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:755)
 at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:262)
 at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:122)
 at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:551)
 at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:411)
 at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:122)
 at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:583)
 at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:929)
Caused by: java.lang.StackOverflowError
 at java.util.HashMap$EntryIterator.<init>(Unknown Source)
 at java.util.HashMap$EntrySet.iterator(Unknown Source)
 at java.util.AbstractMap.hashCode(Unknown Source)
 at java.util.Objects.hashCode(Unknown Source)
 at java.util.HashMap$Node.hashCode(Unknown Source)
 ...
net.sf.jasperreports.engine.JRException: The report filling thread was interrupted.
 at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:126)
 at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:583)
 at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:929)
 ...
Caused by: net.sf.jasperreports.engine.fill.JRFillInterruptedException: Report filling process interrupted.
 at net.sf.jasperreports.engine.fill.BaseReportFiller.checkInterrupted(BaseReportFiller.java:535)
 at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:369)
 at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:357)
 at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBackground(JRVerticalFiller.java:1819)
 at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:252)
 at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:122)
 at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:551)
 at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:411)
 at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:122)
 ... 4 more
net.sf.jasperreports.engine.JRRuntimeException: java.lang.StackOverflowError
 at net.sf.jasperreports.engine.fill.JRFillSubreport.prepare(JRFillSubreport.java:872)
 at net.sf.jasperreports.components.table.fill.FillTableSubreport.prepareSubreport(FillTableSubreport.java:166)
 at net.sf.jasperreports.components.table.fill.FillTable.prepare(FillTable.java:417)
 at net.sf.jasperreports.engine.fill.JRFillComponentElement.prepare(JRFillComponentElement.java:150)
 at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:330)
 at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:382)
 at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:357)
 at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2031)
 at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:755)
 at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:262)
 at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:122)
 at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:551)
 at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:411)
 at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:122)
 at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:583)
 at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:929)
 ...
Caused by: java.lang.StackOverflowError
 at java.util.AbstractMap.hashCode(Unknown Source)
 at java.util.Objects.hashCode(Unknown Source)
 at java.util.HashMap$Node.hashCode(Unknown Source)
 ...

Jasper Exception StackOverflowError

Solution 1
Remove org.apache.log4j jar from your build path and I guess its nearly impossible for you to do so, as you used this log4j everywhere in your code. Solution 2 will save you.

Solution 2
Move your log4j.properties file in src folder. This will work.

Reference
http://community.jaspersoft.com/jasperreports-library/issues/5015#comment-709695

0 comments :