]> source.dussan.org Git - poi.git/commitdiff
Fix bug 58067: XWPF: don't return deleted text when document is in review-mode
authorDominik Stadler <centic@apache.org>
Sun, 3 Jan 2016 13:28:01 +0000 (13:28 +0000)
committerDominik Stadler <centic@apache.org>
Sun, 3 Jan 2016 13:28:01 +0000 (13:28 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1722715 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java
test-data/document/58067.docx [new file with mode: 0644]

index a81ab3b1e81532e09b8af766781120e2dc6376c3..57ff6bcea6c5eaa4804cceab8f0e95f37d559061 100644 (file)
@@ -215,7 +215,13 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents, Para
     public String getText() {
         StringBuffer out = new StringBuffer();
         for (IRunElement run : iruns) {
-            if (run instanceof XWPFSDT) {
+            if (run instanceof XWPFRun) {
+                XWPFRun xRun = (XWPFRun) run;
+                // don't include the text if reviewing is enabled and this is a deleted run
+                if (!xRun.getCTR().isSetRsidDel()) {
+                    out.append(xRun.toString());
+                }
+            } else if (run instanceof XWPFSDT) {
                 out.append(((XWPFSDT) run).getContent().getText());
             } else {
                 out.append(run.toString());
index d9fede9b2c0a36a11ec4ff98e63a863eb1d0e414..b877451aa829d248136cde24e61afafd16978633 100644 (file)
@@ -584,4 +584,15 @@ public final class TestXWPFParagraph {
         assertNull(p.getRun(null));
         doc.close();
     }
+
+    @Test
+    public void test58067() throws IOException {
+        XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("58067.docx");
+        
+        StringBuilder str = new StringBuilder();
+        for(XWPFParagraph par : doc.getParagraphs()) {
+            str.append(par.getText()).append("\n");
+        }
+        assertEquals("This is a test.\n\n\n\n3\n4\n5\n\n\n\nThis is a whole paragraph where one word is deleted.\n", str.toString());
+    }
 }
diff --git a/test-data/document/58067.docx b/test-data/document/58067.docx
new file mode 100644 (file)
index 0000000..ede9abb
Binary files /dev/null and b/test-data/document/58067.docx differ