[ 
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)

Reply via email to