]> source.dussan.org Git - poi.git/commitdiff
Fix bug #47147 - XWPF table cells adding extra paragraph - test from Stefan Stern
authorNick Burch <nick@apache.org>
Fri, 27 May 2011 14:48:22 +0000 (14:48 +0000)
committerNick Burch <nick@apache.org>
Fri, 27 May 2011 14:48:22 +0000 (14:48 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1128331 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/status.xml
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTable.java

index 39172140414389680b925fa995b7beee6f0ee9a1..5f4b8f3fc279431e8cebd9d9d8810f0fdff7aaa7 100644 (file)
@@ -34,6 +34,7 @@
 
     <changes>
         <release version="3.8-beta3" date="2011-??-??">
+           <action dev="poi-developers" type="fix">47147 - Correct extra paragraphs from XWPF Table Cells</action>
            <action dev="poi-developers" type="add">51188 - Support for getting and setting XPWF zoom settings</action>
            <action dev="poi-developers" type="add">51134 - Support for adding Numbering and Styles to a XWPF document that doesn't already have them</action>
            <action dev="poi-developers" type="fix">51273 - Formula Value Cache fix for repeated evaluations</action>
index ec981cad36179de4741615aaa219124f9f54f4b1..d310b288aebbe927e493d7538b787689ca506364 100644 (file)
@@ -51,7 +51,6 @@ public class XWPFTable implements IBodyElement{
         this(table, part);
         for (int i = 0; i < row; i++) {
             XWPFTableRow tabRow = (getRow(i) == null) ? createRow() : getRow(i);
-            tableRows.add(tabRow);
             for (int k = 0; k < col; k++) {
                 XWPFTableCell tabCell = (tabRow.getCell(k) == null) ? tabRow
                         .createCell() : null;
index 6d9a0e93b31526e5c064801efc5dd14e8a6dac96..a8eaf1966c5f7bc0a9b04c4e96694a3eb9b93abb 100644 (file)
 package org.apache.poi.xwpf.usermodel;
 
 import java.math.BigInteger;
+import java.util.List;
 
 import junit.framework.TestCase;
 
+import org.apache.poi.xwpf.XWPFTestDataSamples;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRow;
@@ -130,4 +132,30 @@ public class TestXWPFTable extends TestCase {
         assertEquals(20, row.getHeight());
     }
 
+    public void testCreateTable() throws Exception {
+       // open an empty document
+       XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("sample.docx");
+
+       // create a table with 5 rows and 7 coloumns
+       int noRows = 5; 
+       int noCols = 7;
+       XWPFTable table = doc.createTable(noRows,noCols);
+
+       // assert the table is empty
+       List<XWPFTableRow> rows = table.getRows();
+       assertEquals("Table has less rows than requested.", noRows, rows.size());
+       for (XWPFTableRow xwpfRow : rows)
+       {
+          assertNotNull(xwpfRow);
+          for (int i = 0 ; i < 7 ; i++)
+          {
+             XWPFTableCell xwpfCell = xwpfRow.getCell(i);
+             assertNotNull(xwpfCell);
+             assertEquals("Empty cells should not have one paragraph.",1,xwpfCell.getParagraphs().size());
+             xwpfCell = xwpfRow.getCell(i);
+             assertEquals("Calling 'getCell' must not modify cells content.",1,xwpfCell.getParagraphs().size());
+          }
+       }
+       doc.getPackage().revert();
+    }
 }
\ No newline at end of file