Browse Source

Bugzilla #38243:

Bugfix for NPE when there are gaps in the table-column setup.
Submitted by: Gerhard Oettl <gerhard.oettl.at.oesoft.at>

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@399200 13f79535-47bb-0310-9956-ffa450edef68
pull/25/head
Jeremias Maerki 18 years ago
parent
commit
12d8ba5649

+ 4
- 3
src/java/org/apache/fop/layoutmgr/table/ColumnSetup.java View File

@@ -1,5 +1,5 @@
/*
* Copyright 2005 The Apache Software Foundation.
* Copyright 2005-2006 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -61,9 +61,10 @@ public class ColumnSetup {
ListIterator iter = rawCols.listIterator();
while (iter.hasNext()) {
TableColumn col = (TableColumn)iter.next();
if (col != null) {
colnum = col.getColumnNumber();
if (col == null) {
continue;
}
colnum = col.getColumnNumber();
for (int i = 0; i < col.getNumberColumnsRepeated(); i++) {
while (colnum > columns.size()) {
columns.add(null);

+ 7
- 0
status.xml View File

@@ -27,6 +27,13 @@

<changes>
<release version="FOP Trunk">
<action context="Code" dev="JM" type="fix" fixes-bug="38243" due-to="Gerhard Oettl">
Bugfix: Gaps in table-columns cause a NullPointerException.
</action>
<action context="Code" dev="JM" type="update" fixes-bug="38946" due-to="Max Berger">
Changed the internal representation of colors to use Java's own color infrastructure
instead of FOP's home-grown classes.
</action>
<action context="Code" dev="MM" type="fix">
Bugfix: TABs were not correctly replaced by spaces in some circumstances.
</action>

+ 58
- 0
test/layoutengine/standard-testcases/table-column_gap.xml View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2006 The Apache Software Foundation

Licensed 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 gaps in the table-column setup. Bug 38243 describes a NullPointerException in this case.
</p>
</info>
<fo>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="normal" page-width="5in" page-height="5in">
<fo:region-body/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="normal">
<fo:flow flow-name="xsl-region-body">
<fo:table table-layout="fixed" width="100%" border-collapse="separate">
<fo:table-column width="2cm"/>
<!-- skipping a table-column for column 2 here -->
<fo:table-column width="1cm" column-number="3"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block>cell 1/1</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell column-number="3">
<fo:block>cell 1/3</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:flow>
</fo:page-sequence>
</fo:root>
</fo>
<checks>
<!-- The unpatched code provokes a NullPointerException. Just check that the file was produced. -->
<eval expected="1" xpath="count(//pageViewport)"/>
</checks>
</testcase>

Loading…
Cancel
Save