aboutsummaryrefslogtreecommitdiffstats
path: root/poi-ooxml
diff options
context:
space:
mode:
authorSayi <sayi@apache.org>2021-04-28 09:26:16 +0000
committerSayi <sayi@apache.org>2021-04-28 09:26:16 +0000
commit90f228cabb62bbd49771cbf9358ffb2ae0bae740 (patch)
tree88e9dda9e406376c009ba46fbcfa5d911e5835f3 /poi-ooxml
parent285fd61fb893aa27cede42fb4d16c8c9f348d7d5 (diff)
downloadpoi-90f228cabb62bbd49771cbf9358ffb2ae0bae740.tar.gz
poi-90f228cabb62bbd49771cbf9358ffb2ae0bae740.zip
Fix ArrayIndexOutOfBoundsException if XWPFRun does not set style
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1889259 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'poi-ooxml')
-rw-r--r--poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java9
-rw-r--r--poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java11
2 files changed, 13 insertions, 7 deletions
diff --git a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
index c9176437a7..0a77b32d0f 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
@@ -1248,16 +1248,11 @@ public class XWPFRun implements ISDTContents, IRunElement, CharacterRun {
*/
public String getStyle() {
CTRPr pr = getCTR().getRPr();
- if (pr == null) {
+ if (pr == null || pr.sizeOfRStyleArray() <= 0) {
return "";
}
-
CTString style = pr.getRStyleArray(0);
- if (style == null) {
- return "";
- }
-
- return style.getVal();
+ return null == style ? "" : style.getVal();
}
diff --git a/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java b/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
index 1de994a804..856fcd9be3 100644
--- a/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
+++ b/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
@@ -789,6 +789,17 @@ class TestXWPFRun {
}
@Test
+ void testGetEmptyStyle() throws IOException {
+ XWPFDocument document = new XWPFDocument();
+ final XWPFRun run = document.createParagraph().createRun();
+ assertEquals("", run.getStyle());
+
+ run.getCTR().addNewRPr();
+ assertEquals("", run.getStyle());
+ document.close();
+ }
+
+ @Test
void testGetDepthWidth() throws IOException, InvalidFormatException {
try (XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestDocument.docx")) {
XWPFHeader hdr = doc.createHeader(HeaderFooterType.DEFAULT);