From c784e62a58b9f33e56b19198c0cd03ab6a627903 Mon Sep 17 00:00:00 2001 From: Simon Steiner Date: Thu, 28 Sep 2017 14:45:41 +0000 Subject: [PATCH] FOP-2744: Allow unmapped flow for repeatable-page-master git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1810008 13f79535-47bb-0310-9956-ffa450edef68 --- .../layoutmgr/PageSequenceLayoutManager.java | 3 +- .../PageSequenceLayoutManagerTestCase.java | 1 + ...imple-page-master_unmapped_flow-name_2.xml | 56 +++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 fop/test/layoutengine/standard-testcases/simple-page-master_unmapped_flow-name_2.xml diff --git a/fop-core/src/main/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java b/fop-core/src/main/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java index 6b993424c..75bfe5e60 100644 --- a/fop-core/src/main/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java +++ b/fop-core/src/main/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java @@ -205,7 +205,8 @@ public class PageSequenceLayoutManager extends AbstractPageSequenceLayoutManager String psName = getPageSequence().getMainFlow().getFlowName(); Region body = newPage.getSimplePageMaster().getRegion(FO_REGION_BODY); String name = body.getRegionName(); - if (strict && !name.equals(psName) && !name.equals(((RegionBody)body).getDefaultRegionName())) { + if (strict && !name.equals(psName) && !name.equals(((RegionBody)body).getDefaultRegionName()) + && getPageSequence().hasPagePositionLast()) { throw new RuntimeException( "The flow-name \"" + name + "\" could not be mapped to a region-name in the layout-master-set"); } diff --git a/fop-core/src/test/java/org/apache/fop/layoutmgr/PageSequenceLayoutManagerTestCase.java b/fop-core/src/test/java/org/apache/fop/layoutmgr/PageSequenceLayoutManagerTestCase.java index e6a0975a8..a87dc0fa0 100644 --- a/fop-core/src/test/java/org/apache/fop/layoutmgr/PageSequenceLayoutManagerTestCase.java +++ b/fop-core/src/test/java/org/apache/fop/layoutmgr/PageSequenceLayoutManagerTestCase.java @@ -127,6 +127,7 @@ public class PageSequenceLayoutManagerTestCase { when(flow.getFlowName()).thenReturn(MAIN_FLOW_NAME); when(pseq.getRoot()).thenReturn(root); + when(pseq.hasPagePositionLast()).thenReturn(true); when(pseq.getMainFlow()).thenReturn(flow); PageSequenceLayoutManager pageSequenceLayoutManager = new PageSequenceLayoutManager(ath, pseq) { diff --git a/fop/test/layoutengine/standard-testcases/simple-page-master_unmapped_flow-name_2.xml b/fop/test/layoutengine/standard-testcases/simple-page-master_unmapped_flow-name_2.xml new file mode 100644 index 000000000..bf874955a --- /dev/null +++ b/fop/test/layoutengine/standard-testcases/simple-page-master_unmapped_flow-name_2.xml @@ -0,0 +1,56 @@ + + + + + +

+ This test checks that when the region-body@region-name of simple-page-master does not map to + the main flow, the PageSequenceLayoutManager treats the generated Page as an empty/blank page. +

+
+ + + + + + + + + + + + + + + + + + + + + test + + + + + + + + + +
-- 2.39.5