[
https://issues.apache.org/jira/browse/FOP-1409?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
simon steiner updated FOP-1409:
-------------------------------
Summary: PageBreakingAlgorithm IndexOutOfBoundsException (was:
IndexOutOfBoundsException)
> PageBreakingAlgorithm IndexOutOfBoundsException
> -----------------------------------------------
>
> Key: FOP-1409
> URL: https://issues.apache.org/jira/browse/FOP-1409
> Project: FOP
> Issue Type: Bug
> Components: unqualified
> Affects Versions: 0.94
> Environment: Operating System: other
> Platform: All
> Reporter: Hussein Shafie
>
> This IndexOutOfBoundsException:
> ===============================================================
> java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
> at java.util.ArrayList.RangeCheck(ArrayList.java:508)
> at java.util.ArrayList.get(ArrayList.java:320)
> at
> org.apache.fop.layoutmgr.PageBreakingAlgorithm.computeDemerits(PageBreakingAlgorithm.java:644)
> at
> org.apache.fop.layoutmgr.BreakingAlgorithm.considerLegalBreak(BreakingAlgorithm.java:737)
> at
> org.apache.fop.layoutmgr.PageBreakingAlgorithm.considerLegalBreak(PageBreakingAlgorithm.java:309)
> at
> org.apache.fop.layoutmgr.BreakingAlgorithm.findBreakingPoints(BreakingAlgorithm.java:485)
> at
> org.apache.fop.layoutmgr.BreakingAlgorithm.findBreakingPoints(BreakingAlgorithm.java:403)
> at
> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:338)
> at
> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:263)
> at
> org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:144)
> at
> org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:233)
> at
> org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:145)
> at
> org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:378)
> at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:194)
> ===============================================================
> Workaround:
> In src/java/org/apache/fop/layoutmgr/PageBreakingAlgorithm.java, replace:
> ===============================================================
> if (footnotesPending) {
> if (footnoteListIndex < footnotesList.size() - 1) {
> // add demerits for the deferred footnotes
> demerits += (footnotesList.size() - 1 - footnoteListIndex)
> * deferredFootnoteDemerits;
> }
> if (footnoteElementIndex
> < ((LinkedList) footnotesList.get(footnoteListIndex)).size() - 1)
> {
> // add demerits for the footnote split between pages
> demerits += splitFootnoteDemerits;
> }
> }
> ===============================================================
>
> by:
> ===============================================================
> if (footnotesPending) {
> int footnotesListSize = footnotesList.size();
> if (footnoteListIndex < footnotesListSize - 1) {
> // add demerits for the deferred footnotes
> demerits += (footnotesListSize - 1 - footnoteListIndex)
> * deferredFootnoteDemerits;
> }
> if (footnoteListIndex < footnotesListSize &&
> footnoteElementIndex
> < ((LinkedList) footnotesList.get(footnoteListIndex)).size() - 1)
> {
> // add demerits for the footnote split between pages
> demerits += splitFootnoteDemerits;
> }
> }
> ===============================================================
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)