Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.1, 2.2
-
None
-
None
Description
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:
if (temp.getNameId() == FO_TABLE && (ancestorID == FO_TABLE_HEADER || ancestorID == FO_TABLE_FOOTER)) { return -1; }
at /org/apache/fop/fo/flow/RetrieveTableMarker.java:104