Browse Source

Fix bug 58067: XWPF: don't return deleted text when document is in review-mode

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1722715 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_14_FINAL
Dominik Stadler 8 years ago
parent
commit
cb441adcb4

+ 7
- 1
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java View 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());

+ 11
- 0
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java View 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());
}
}

BIN
test-data/document/58067.docx View File


Loading…
Cancel
Save