From 7f020cc606a2c6260f0f42ab4e1b0ce2e18b8159 Mon Sep 17 00:00:00 2001 From: Jeremias Maerki Date: Thu, 18 May 2006 18:58:05 +0000 Subject: [PATCH] Bugfix: NullPointerException in AreaAdditionUtil in a table-cell spanning multiple pages and with a marker. Note: This is a hack to avoid the NPE. A problem remains. The markers will not be added if the first/last conditions cannot be determined. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@407614 13f79535-47bb-0310-9956-ffa450edef68 --- .../fop/layoutmgr/AreaAdditionUtil.java | 7 ++ test/layoutengine/disabled-testcases.xml | 5 ++ .../table-cell_empty_area_with_marker.xml | 83 +++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 test/layoutengine/standard-testcases/table-cell_empty_area_with_marker.xml diff --git a/src/java/org/apache/fop/layoutmgr/AreaAdditionUtil.java b/src/java/org/apache/fop/layoutmgr/AreaAdditionUtil.java index a210754af..866b8236d 100644 --- a/src/java/org/apache/fop/layoutmgr/AreaAdditionUtil.java +++ b/src/java/org/apache/fop/layoutmgr/AreaAdditionUtil.java @@ -85,6 +85,13 @@ public class AreaAdditionUtil { // pos was created by this LM, so it must be ignored } } + if (firstPos == null) { + return; //Nothing to do, return early + //TODO This is a hack to avoid an NPE in the code block below. + //If there's no firstPos/lastPos there's currently no way to + //correctly determine first and last conditions. The Iterator + //doesn't give us that info. + } if (bslm != null && bslm.markers != null) { bslm.getCurrentPV().addMarkers(bslm.markers, true, diff --git a/test/layoutengine/disabled-testcases.xml b/test/layoutengine/disabled-testcases.xml index ea6a45677..5725a4ebd 100644 --- a/test/layoutengine/disabled-testcases.xml +++ b/test/layoutengine/disabled-testcases.xml @@ -329,6 +329,11 @@ When a table is put in a marker and that is referenced using retrieve-marker, an NPE occurs during the cloning process. http://issues.apache.org/bugzilla/show_bug.cgi?id=39560 + + table-cell empty area with marker.xml + table-cell_empty_area_with_marker.xml + A table-cell producing an empty area does currently not add any markers to a page. See TODO entry in AreaAdditionUtil. + Border conditionality on table table_border-width_conditionality.xml diff --git a/test/layoutengine/standard-testcases/table-cell_empty_area_with_marker.xml b/test/layoutengine/standard-testcases/table-cell_empty_area_with_marker.xml new file mode 100644 index 000000000..73392bee8 --- /dev/null +++ b/test/layoutengine/standard-testcases/table-cell_empty_area_with_marker.xml @@ -0,0 +1,83 @@ + + + + + +

+ This test checks long table-cells with markers. This is a regression check for a bug + reported on fop-users. +

+
+ + + + + + + + + + + + Marker: + + + + + + + + + + Blah! + cell1 + + + cell2 + cell2 + cell2 + cell2 + cell2 + cell2 + cell2 + cell2 + cell2 + cell2 + cell2 + cell2 + cell2 + cell2 + cell2 + cell2 + cell2 + + + cell3 + + + + + + + + + + + + + +
-- 2.39.5