CTRow removes tc when row removes cell

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1881354 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java
index c3a6755..e79f7d2 100644
--- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java
+++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java
@@ -74,6 +74,7 @@
     public void removeCell(int pos) {
         if (pos >= 0 && pos < ctRow.sizeOfTcArray()) {
             tableCells.remove(pos);
+            ctRow.removeTc(pos);
         }
     }
 
diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableRow.java b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableRow.java
index 383e5c3..620b59e 100644
--- a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableRow.java
+++ b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableRow.java
@@ -17,6 +17,7 @@
 
 package org.apache.poi.xwpf.usermodel;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -142,6 +143,20 @@
     }
 
     @Test
+    public void testRemoveCell() throws IOException {
+        XWPFDocument doc = new XWPFDocument();
+        XWPFTableRow tr = doc.createTable(1, 1).createRow();
+
+        assertEquals(1, tr.getTableCells().size());
+        assertEquals(tr.getTableCells().size(), tr.getCtRow().sizeOfTcArray());
+
+        tr.removeCell(0);
+        assertEquals(0, tr.getTableCells().size());
+        assertEquals(tr.getTableCells().size(), tr.getCtRow().sizeOfTcArray());
+        doc.close();
+    }
+
+    @Test
     public void testBug62174() throws IOException {
         try (XWPFDocument doc = XWPFTestDataSamples
                 .openSampleDocument("Bug60337.docx")) {