Issue: Memory Leak
After upgrading the jasperreports jar from 6.1.0 to 6.18.1 or higher, we came across a memory leak. Sample template is attached here. The templates we have in the system used jasperreports 6.1.1 to compile.
How to reproduce: The issue identified is when template has isPrintWhenDetailOverflows="true" on a detail band and the sub-report content is repeating exactly 2+4n times (specific for our template). This gets into a case where JRFillElementContainer.willOverFlow() becomes true indefinitely, and the isOverFlow flag is never set to false and executer gets into an infinite loop.
We were able to fix this issue by removing isPrintWhenDetailOverflows="true" attribute. But we cannot opt for this fix as we have hundreds of template that needs to be fixed and tested for this
Jrxml Files: attached (main-report.jrxml, sub-report.jrxml)
Jasper compiler version: jasperreports 6.1.1
Previous jasperreports.jar used: 6.1.0
Updated jasperreports.jar version - 6.18.1/6.19.0/6.19.1
Short term fix: Downgrade jasperreports version back to 6.1.0.