git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1325016 13f79535-47bb-0310-9956-ffa450edef68tags/fop-1_1rc1old
@@ -103,17 +103,30 @@ public abstract class AbstractRetrieveMarker extends FObjMixed { | |||
pList, | |||
newPropertyList); | |||
addChildTo(newChild, newParent); | |||
if (newChild.getNameId() == FO_TABLE) { | |||
switch ( newChild.getNameId() ) { | |||
case FO_TABLE: | |||
Table t = (Table) child; | |||
cloneSubtree(t.getColumns().iterator(), | |||
newChild, marker, newPropertyList); | |||
newChild, marker, newPropertyList); | |||
cloneSingleNode(t.getTableHeader(), | |||
newChild, marker, newPropertyList); | |||
newChild, marker, newPropertyList); | |||
cloneSingleNode(t.getTableFooter(), | |||
newChild, marker, newPropertyList); | |||
newChild, marker, newPropertyList); | |||
cloneSubtree(child.getChildNodes(), | |||
newChild, marker, newPropertyList); | |||
break; | |||
case FO_LIST_ITEM: | |||
ListItem li = (ListItem) child; | |||
cloneSingleNode(li.getLabel(), | |||
newChild, marker, newPropertyList); | |||
cloneSingleNode(li.getBody(), | |||
newChild, marker, newPropertyList); | |||
break; | |||
default: | |||
cloneSubtree(child.getChildNodes(), | |||
newChild, marker, newPropertyList); | |||
break; | |||
} | |||
cloneSubtree(child.getChildNodes(), newChild, | |||
marker, newPropertyList); | |||
} else if (child instanceof FOText) { | |||
FOText ft = (FOText) newChild; | |||
ft.bind(parentPropertyList); |
@@ -62,6 +62,9 @@ | |||
documents. Example: the fix of marks layering will be such a case when it's done. | |||
--> | |||
<release version="FOP Trunk" date="TBD"> | |||
<action context="Code" dev="GA" type="fix" fixes-bug="52763"> | |||
Support list-block in marker, thus preventing NPE. | |||
</action> | |||
<action context="Code" dev="GA" type="fix"> | |||
Must use unqualified (local name) when reporting invalid child error. | |||
</action> |
@@ -0,0 +1,78 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<!-- | |||
Licensed to the Apache Software Foundation (ASF) under one or more | |||
contributor license agreements. See the NOTICE file distributed with | |||
this work for additional information regarding copyright ownership. | |||
The ASF licenses this file to You under the Apache License, Version 2.0 | |||
(the "License"); you may not use this file except in compliance with | |||
the License. You may obtain a copy of the License at | |||
http://www.apache.org/licenses/LICENSE-2.0 | |||
Unless required by applicable law or agreed to in writing, software | |||
distributed under the License is distributed on an "AS IS" BASIS, | |||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
See the License for the specific language governing permissions and | |||
limitations under the License. | |||
--> | |||
<!-- $Id$ --> | |||
<testcase> | |||
<info> | |||
<p> | |||
This test checks markers containing list-block. Seel also bug 52763. | |||
</p> | |||
</info> | |||
<fo> | |||
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> | |||
<fo:layout-master-set> | |||
<fo:simple-page-master master-name="main" page-width="8.5in" page-height="11in"> | |||
<fo:region-body margin-top="2in" margin-bottom="2in"/> | |||
<fo:region-before extent="2in"/> | |||
<fo:region-after extent="2in"/> | |||
</fo:simple-page-master> | |||
</fo:layout-master-set> | |||
<fo:page-sequence master-reference="main"> | |||
<fo:static-content flow-name="xsl-region-before"> | |||
<fo:block-container height="2in" width="8.5in" position="absolute"> | |||
<fo:block> | |||
<fo:retrieve-marker retrieve-class-name="message"/> | |||
</fo:block> | |||
</fo:block-container> | |||
</fo:static-content> | |||
<fo:flow flow-name="xsl-region-body"> | |||
<fo:block> | |||
<fo:marker marker-class-name="message"> | |||
<fo:block> | |||
<fo:list-block> | |||
<fo:list-item> | |||
<fo:list-item-label> | |||
<fo:block>A</fo:block> | |||
</fo:list-item-label> | |||
<fo:list-item-body start-indent="1.0in"> | |||
<fo:block>BODY A</fo:block> | |||
</fo:list-item-body> | |||
</fo:list-item> | |||
<fo:list-item> | |||
<fo:list-item-label> | |||
<fo:block>B</fo:block> | |||
</fo:list-item-label> | |||
<fo:list-item-body start-indent="1.0in"> | |||
<fo:block>BODY B</fo:block> | |||
</fo:list-item-body> | |||
</fo:list-item> | |||
</fo:list-block> | |||
</fo:block> | |||
</fo:marker> | |||
</fo:block> | |||
</fo:flow> | |||
</fo:page-sequence> | |||
</fo:root> | |||
</fo> | |||
<checks> | |||
<eval expected="4" xpath="count(//regionBefore/descendant::lineArea)"/> | |||
<eval expected="A" xpath="//regionBefore/descendant::lineArea[1]"/> | |||
<eval expected="BODY A" xpath="//regionBefore/descendant::lineArea[2]"/> | |||
<eval expected="B" xpath="//regionBefore/descendant::lineArea[3]"/> | |||
<eval expected="BODY B" xpath="//regionBefore/descendant::lineArea[4]"/> | |||
</checks> | |||
</testcase> |