The attached testcase causes FOP to loop infinitely.
Created attachment 1774 [details] Testcase FO file
I don't think this is actually being caused by the list-block. I was able to stop the infinite looping by removing the space-before="85mm" attribute from the first block in the document. I'm attaching my "doesn't break" document.
Created attachment 1775 [details] Same document as original poster, but doesn't break FOP
Additionally, the infinite loop persisted on another document that had no list at all, but just the block with the aforementioned attribute. I'm also attaching that document.
Created attachment 1776 [details] Simple FO that shows the attribute breaking FOP
Further tests show that 85mm is the threshhold size for for space-before attribute in this case. When it was changed to 84mm in the test document, it rendered fine. Likewise, it also worked fine in the super-simple test I posted earlier. What I suspect is happening is that FOP is attempting to place the leading block while honoring its space-before attrubute, but the test for break is leading FOP to try and reposition the block on the next page. The block naturally spills off the next page, leading FOP to try again...ad nauseum. This can be fixed with the addition of some logic to see if FOP is trying to reposition the entire element as it would be in this case and to either choose not to honor the space-before attribute after the second try (or maybe it just gives up after the second try, since the block is a natural conundrum that can't be handled effectively).
Patch supplied (I hope I did things right with diff). This causes the infinite loop to terminate for both cases of bug 8778 and cause no abnormal halts of processing on the examples. Since no layout is manipulated (it just halts processing), this should be enough testing.
Created attachment 3975 [details] Proposed patch (diff -u)
Committed, thank you. Patch did not work, I had to apply it manually (no problem in this case, looks like your changes weren't againt current cvs) Best thing is to work with current cvs, make your changes and then cvs diff -u > coolpatch.diff
batch transition pre-FOP1.0 resolved+fixed bugs to closed+fixed