Author: abearez Date: Fri Mar 27 03:13:37 2020 New Revision: 1875746 URL: http://svn.apache.org/viewvc?rev=1875746&view=rev Log: XWPFTableCell does not process bodyElements when handle paragraph
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableCell.java Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java?rev=1875746&r1=1875745&r2=1875746&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java Fri Mar 27 03:13:37 2020 @@ -160,6 +160,7 @@ public class XWPFTableCell implements IB */ public void addParagraph(XWPFParagraph p) { paragraphs.add(p); + bodyElements.add(p); } /** @@ -168,8 +169,10 @@ public class XWPFTableCell implements IB * @param pos The position in the list of paragraphs, 0-based */ public void removeParagraph(int pos) { + XWPFParagraph removedParagraph = paragraphs.get(pos); paragraphs.remove(pos); ctTc.removeP(pos); + bodyElements.remove(removedParagraph); } /** Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableCell.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableCell.java?rev=1875746&r1=1875745&r2=1875746&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableCell.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableCell.java Fri Mar 27 03:13:37 2020 @@ -151,6 +151,58 @@ public class TestXWPFTableCell { } @Test + public void testAddParagraph() throws Exception { + XWPFDocument doc = new XWPFDocument(); + XWPFTable table = doc.createTable(); + XWPFTableRow tr = table.createRow(); + XWPFTableCell cell = tr.addNewTableCell(); + + // cell have at least one paragraph by default + assertEquals(1, cell.getParagraphs().size()); + assertEquals(1, cell.getBodyElements().size()); + assertEquals(cell.getParagraphArray(0), cell.getBodyElements().get(0)); + + XWPFParagraph p = cell.addParagraph(); + assertEquals(2, cell.getParagraphs().size()); + assertEquals(2, cell.getBodyElements().size()); + assertEquals(p, cell.getParagraphArray(1)); + assertEquals(cell.getParagraphArray(1), cell.getBodyElements().get(1)); + + doc.close(); + } + + @Test + public void testRemoveParagraph() throws Exception { + XWPFDocument doc = new XWPFDocument(); + XWPFTable table = doc.createTable(); + XWPFTableRow tr = table.createRow(); + XWPFTableCell cell = tr.addNewTableCell(); + + // cell have at least one paragraph by default + XWPFParagraph p0 = cell.getParagraphArray(0); + XWPFParagraph p1 = cell.addParagraph(); + cell.addParagraph(); + + // remove 3rd + cell.removeParagraph(2); + assertEquals(2, cell.getParagraphs().size()); + assertEquals(2, cell.getBodyElements().size()); + assertEquals(p0, cell.getParagraphArray(0)); + assertEquals(p1, cell.getParagraphArray(1)); + assertEquals(p0, cell.getBodyElements().get(0)); + assertEquals(p1, cell.getBodyElements().get(1)); + + // remove 2nd + cell.removeParagraph(1); + assertEquals(1, cell.getParagraphs().size()); + assertEquals(1, cell.getBodyElements().size()); + assertEquals(p0, cell.getParagraphArray(0)); + assertEquals(p0, cell.getBodyElements().get(0)); + + doc.close(); + } + + @Test public void testBug63624() throws Exception { XWPFDocument doc = new XWPFDocument(); XWPFTable table = doc.createTable(1, 1); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org For additional commands, e-mail: commits-h...@poi.apache.org