Project: Birt
Bug 293419 Endless loop while calculating page breaks of elements
Reported: 2009-10-27 07:34:02 | Status: verified fixed

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729) Build Identifier: 2.51 Endless loop while calculating page breaks of elements: In package 'org.eclipse.birt.report.engine.nLayout.area.impl' class 'BlockTextArea' method 'protected void update( ) throws BirtException' while ( aHeight + parent.getAbsoluteBP( ) >= context.getMaxBP( ) ) { parent.autoPageBreak( ); aHeight = getAllocatedHeight( ); } and in package 'org.eclipse.birt.report.engine.nLayout.area.impl' class 'ContainerArea' method 'protected boolean checkPageBreak( ) throws BirtException' // When table resolves its bottom border, the total height may exceed the page body height. // We add 3pt to avoid unexpected page break. while ( aHeight + parent.getAbsoluteBP( ) > context.getMaxBP( ) + 3000 ) { parent.autoPageBreak( ); aHeight = getAllocatedHeight( ); ret = true; } have endless loops with simple list reports that have groups and pagebreak rules set to 'continue' (w/o) page break on each group. The data records already sorted, so no invalid data order occures for data grouping. End user have no chance to complete it's reports. Grouping works very well if forcing pagebreaks on each group, but that is not what the user wants! Reproducible: Always Steps to Reproduce: Simply create database connected list report with groups an playing around group settings for pagebreaks 'auto' and 'avoid'.

Files changed in fix:
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/nLayout/area/impl/RowArea.java engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/nLayout/area/impl/TableArea.java