[jira] [Resolved] (FOP-2763) retrieve-table-marker on nested tables causes whole tables to disappear

"Simon Steiner (Jira)" <[email protected]> Wed, 26 Nov 2025 09:34:00 +0000 (UTC)
Newsgroups gmane.text.xml.fop.devel
Message-ID <[email protected]>
     [ https://issues.apache.org/jira/browse/FOP-2763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Simon Steiner resolved FOP-2763.
--------------------------------
    Fix Version/s: main
       Resolution: Fixed

https://github.com/apache/xmlgraphics-fop/commit/d1fe1f19fb4c6f1dfad6289db4cb6bb1e04320ae

> retrieve-table-marker on nested tables causes whole tables to disappear
> -----------------------------------------------------------------------
>
>                 Key: FOP-2763
>                 URL: https://issues.apache.org/jira/browse/FOP-2763
>             Project: FOP
>          Issue Type: Bug
>          Components: fo/block
>    Affects Versions: 2.1, 2.2
>            Reporter: Jakub Gwóźdź
>            Assignee: Simon Steiner
>            Priority: Major
>             Fix For: main
>
>         Attachments: markers.fo.xml, result.pdf
>
>
> When fo:table with retrieve-table-marker is nested in another fo:table, invalid code causes whole inner table to disappear. 
> This is probably because org.apache.fop.fo.flow.RetrieveTableMarker#findAncestor marks ALL parent table-cells up to fo:flow as HavingRetrieveTableMarker, instead of marking just current table's cell.
> See my proof of bug with demonstrations at https://github.com/jakubgwozdz/fop-retrieve-table-markers-bug
> The initial workaround could involve something like this:
> {code:java}
>   if (temp.getNameId() == FO_TABLE && (ancestorID == FO_TABLE_HEADER || ancestorID == FO_TABLE_FOOTER)) {
>       return -1;
>   }
> {code}
> at /org/apache/fop/fo/flow/RetrieveTableMarker.java:104



--
This message was sent by Atlassian Jira
(v8.20.10#820010)