You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by jm...@apache.org on 2016/12/01 02:21:56 UTC
svn commit: r1772138 - in /poi: site/src/documentation/content/xdocs/
trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/
trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/
trunk/test-data/document/
Author: jmarkmurphy
Date: Thu Dec 1 02:21:56 2016
New Revision: 1772138
URL: http://svn.apache.org/viewvc?rev=1772138&view=rev
Log:
60329: Avoid NPE when styleid is null
Task-Url: https://bz.apache.org/bugzilla/show_bug.cgi?id=60329
Added:
poi/trunk/test-data/document/60329.docx (with props)
Modified:
poi/site/src/documentation/content/xdocs/status.xml
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java
Modified: poi/site/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/status.xml?rev=1772138&r1=1772137&r2=1772138&view=diff
==============================================================================
--- poi/site/src/documentation/content/xdocs/status.xml (original)
+++ poi/site/src/documentation/content/xdocs/status.xml Thu Dec 1 02:21:56 2016
@@ -58,6 +58,7 @@
<release version="3.16-beta2" date="2017-02-??">
<actions>
+ <action dev="PD" type="fix" fixes-bug="60329" module="XWPF">Added try/catch block to swallow NPE</action>
<action dev="PD" type="fix" fixes-bug="60370" module="XSSF">Encode some special characters when setting title/text for validation text-boxes</action>
<action dev="PD" type="fix" fixes-bug="60331" module="HPSF">Remove deprecated classes - deprecate Mutable* property classes</action>
<action dev="PD" type="fix" fixes-bug="60427" module="XSLF">Creating pictures in PowerPoint slides requires scratchpad-jar for adding WMF images</action>
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java?rev=1772138&r1=1772137&r2=1772138&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java Thu Dec 1 02:21:56 2016
@@ -194,9 +194,13 @@ public class XWPFStyles extends POIXMLDo
* @return style
*/
public XWPFStyle getStyle(String styleID) {
- for (XWPFStyle style : listStyle) {
- if (style.getStyleId().equals(styleID))
- return style;
+ for (XWPFStyle style : listStyle) {
+ try {
+ if (style.getStyleId().equals(styleID))
+ return style;
+ } catch (NullPointerException e) {
+ // Ignore NPE
+ }
}
return null;
}
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java?rev=1772138&r1=1772137&r2=1772138&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java Thu Dec 1 02:21:56 2016
@@ -17,13 +17,18 @@
package org.apache.poi.xwpf.usermodel;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import junit.framework.TestCase;
-
import org.apache.poi.xwpf.XWPFTestDataSamples;
+import org.junit.Test;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTLatentStyles;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTLsdException;
@@ -31,7 +36,8 @@ import org.openxmlformats.schemas.wordpr
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTStyles;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STStyleType;
-public class TestXWPFStyles extends TestCase {
+public final class TestXWPFStyles {
+ @Test
public void testGetUsedStyles() throws IOException {
XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("Styles.docx");
List<XWPFStyle> testUsedStyleList = new ArrayList<XWPFStyle>();
@@ -47,6 +53,7 @@ public class TestXWPFStyles extends Test
assertEquals(usedStyleList, testUsedStyleList);
}
+ @Test
public void testAddStylesToDocument() throws IOException {
XWPFDocument docOut = new XWPFDocument();
XWPFStyles styles = docOut.createStyles();
@@ -70,6 +77,7 @@ public class TestXWPFStyles extends Test
* Bug #52449 - We should be able to write a file containing
* both regular and glossary styles without error
*/
+ @Test
public void test52449() throws Exception {
XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("52449.docx");
XWPFStyles styles = doc.getStyles();
@@ -86,6 +94,7 @@ public class TestXWPFStyles extends Test
* they exist only to copy xml beans to pi-ooxml-schemas.jar
*/
@SuppressWarnings("resource")
+ @Test
public void testLanguages() {
XWPFDocument docOut = new XWPFDocument();
XWPFStyles styles = docOut.createStyles();
@@ -97,6 +106,7 @@ public class TestXWPFStyles extends Test
styles.setDefaultFonts(def);
}
+ @Test
public void testType() {
CTStyle ctStyle = CTStyle.Factory.newInstance();
XWPFStyle style = new XWPFStyle(ctStyle);
@@ -105,6 +115,7 @@ public class TestXWPFStyles extends Test
assertEquals(STStyleType.PARAGRAPH, style.getType());
}
+ @Test
public void testLatentStyles() {
CTLatentStyles latentStyles = CTLatentStyles.Factory.newInstance();
CTLsdException ex = latentStyles.addNewLsdException();
@@ -114,6 +125,7 @@ public class TestXWPFStyles extends Test
assertEquals(false, ls.isLatentStyle("notex1"));
}
+ @Test
public void testSetStyles_Bug57254() throws IOException {
XWPFDocument docOut = new XWPFDocument();
XWPFStyles styles = docOut.createStyles();
@@ -133,6 +145,7 @@ public class TestXWPFStyles extends Test
assertTrue(styles.styleExist(strStyleId));
}
+ @Test
public void testEasyAccessToStyles() throws IOException {
XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("SampleDoc.docx");
XWPFStyles styles = doc.getStyles();
@@ -188,4 +201,22 @@ public class TestXWPFStyles extends Test
assertEquals(11, styles.getDefaultRunStyle().getFontSize());
assertEquals(200, styles.getDefaultParagraphStyle().getSpacingAfter());
}
+
+ // Bug 60329: style with missing StyleID throws NPE
+ @Test
+ public void testMissingStyleId() throws IOException {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("60329.docx");
+ XWPFStyles styles = doc.getStyles();
+ // Styles exist in the test document in this order, EmptyCellLayoutStyle
+ // is missing a StyleId
+ try {
+ assertNotNull(styles.getStyle("NoList"));
+ assertNull(styles.getStyle("EmptyCellLayoutStyle"));
+ assertNotNull(styles.getStyle("BalloonText"));
+ } catch (NullPointerException e) {
+ fail(e.toString());
+ }
+
+ doc.close();
+ }
}
Added: poi/trunk/test-data/document/60329.docx
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/document/60329.docx?rev=1772138&view=auto
==============================================================================
Binary file - no diff available.
Propchange: poi/trunk/test-data/document/60329.docx
------------------------------------------------------------------------------
--- svn:mime-type (added)
+++ svn:mime-type Thu Dec 1 02:21:56 2016
@@ -0,0 +1 @@
+application/vnd.openxmlformats-officedocument.wordprocessingml.document
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org