https://issues.apache.org/bugzilla/show_bug.cgi?id=48162

           Summary: PageBreakingAlgorithm endless loop
           Product: Fop
           Version: 0.95
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: major
          Priority: P2
         Component: general
        AssignedTo: fop-dev@xmlgraphics.apache.org
        ReportedBy: kempelen.a...@gmail.com


The createFootnotePages(KnuthPageNode lastNode) method can go to an endless
loop.
Check this part from line 818:

while (insertedFootnotesLength < totalFootnotesLength) {
   final int tmpLength = ((Integer)
lengthList.get(footnoteListIndex)).intValue();
   // try adding some more content
   if ((tmpLength - insertedFootnotesLength) <= availableBPD) {
      // add a whole footnote
      availableBPD -= tmpLength - insertedFootnotesLength;
      insertedFootnotesLength = tmpLength;
      footnoteElementIndex = getFootnoteList(footnoteListIndex).size() - 1;
   } 
...

Most of the times it works OK, but if tmpLength=insertedFootnotesLength, the
while loop will never end. It can happen, I transformed a document where this
while cycle never stop.

I put this line into the while cycle:

if (tmpLength == insertedFootnotesLength) {
   footnoteListIndex++;
}

Now it works fine, but I do not know if it gives a correct result in every
cases.

Akos

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Reply via email to