I know that this issue has been asked a long time ago here, but it seems that it's not fixed yet (until version 6.19.0). We had a serious problem with this. Although this bug becomes active because a bad configuration of the jrxml file, even so the class JRVerticalFiller is not processing well, entering an infinite loop of overflowing the band. I'm providing a small project with a minimal jrxml file that reproduces the issue.
Here's some instructions about the attached project:
Requires Java 11
After extract, enter in the extracted folder and run: mvn install
Enter in target folder and run: java -jar jasper-infinite-loop-0.0.1-SNAPSHOT.jar
As the run process will fail in a infinite loop, the thread is configured with a timeout of 15 seconds (see the JasperInfiniteLoopApplication).
The minimal jrxml file consists of a band with a frame that has "isPrintWhenDetailOverflows=true". Inside the frame, one StaticText that behave as a column header and a List. The DataSource is relevant too. It has data for the List component filling almost an entire page. But after filling the data, the frame itself not overflows, only the band because of the remaining space at bottom. This particular situation causes the band.calculateStretchHeight() always grather than the band.getStretchHeight(), making the band overflowing forever.
Infinite Loop in JRVerticalFiller
in Products
Posted
Hi everyone.
I know that this issue has been asked a long time ago here, but it seems that it's not fixed yet (until version 6.19.0). We had a serious problem with this. Although this bug becomes active because a bad configuration of the jrxml file, even so the class JRVerticalFiller is not processing well, entering an infinite loop of overflowing the band. I'm providing a small project with a minimal jrxml file that reproduces the issue.
Here's some instructions about the attached project:
As the run process will fail in a infinite loop, the thread is configured with a timeout of 15 seconds (see the JasperInfiniteLoopApplication).
The minimal jrxml file consists of a band with a frame that has "isPrintWhenDetailOverflows=true". Inside the frame, one StaticText that behave as a column header and a List. The DataSource is relevant too. It has data for the List component filling almost an entire page. But after filling the data, the frame itself not overflows, only the band because of the remaining space at bottom. This particular situation causes the band.calculateStretchHeight() always grather than the band.getStretchHeight(), making the band overflowing forever.
Hope that a good soul takes care this issue.