You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ta...@apache.org on 2016/10/31 19:02:06 UTC
svn commit: r1767353 - in /poi/trunk:
src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFHeader.java
test-data/document/60293.docx
Author: tallison
Date: Mon Oct 31 19:02:06 2016
New Revision: 1767353
URL: http://svn.apache.org/viewvc?rev=1767353&view=rev
Log:
60293 -- Handle illegal "Odd" header/footer in XWPF
Added:
poi/trunk/test-data/document/60293.docx (with props)
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFHeader.java
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java?rev=1767353&r1=1767352&r2=1767353&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java Mon Oct 31 19:02:06 2016
@@ -29,6 +29,7 @@ import org.apache.poi.xwpf.usermodel.XWP
import org.apache.poi.xwpf.usermodel.XWPFHeaderFooter;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRelation;
+import org.apache.xmlbeans.impl.values.XmlValueOutOfRangeException;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBody;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHdrFtr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHdrFtrRef;
@@ -115,8 +116,14 @@ public class XWPFHeaderFooterPolicy {
if (relatedPart != null && relatedPart instanceof XWPFHeader) {
hdr = (XWPFHeader) relatedPart;
}
- // Assign it
- Enum type = ref.getType();
+ // Assign it; treat invalid options as "default" POI-60293
+ Enum type;
+ try {
+ type = ref.getType();
+ } catch (XmlValueOutOfRangeException e) {
+ type = STHdrFtr.DEFAULT;
+ }
+
assignHeader(hdr, type);
}
for (int i = 0; i < sectPr.sizeOfFooterReferenceArray(); i++) {
@@ -127,8 +134,13 @@ public class XWPFHeaderFooterPolicy {
if (relatedPart != null && relatedPart instanceof XWPFFooter) {
ftr = (XWPFFooter) relatedPart;
}
- // Assign it
- Enum type = ref.getType();
+ // Assign it; treat invalid options as "default" POI-60293
+ Enum type;
+ try {
+ type = ref.getType();
+ } catch (XmlValueOutOfRangeException e) {
+ type = STHdrFtr.DEFAULT;
+ }
assignFooter(ftr, type);
}
}
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFHeader.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFHeader.java?rev=1767353&r1=1767352&r2=1767353&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFHeader.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFHeader.java Mon Oct 31 19:02:06 2016
@@ -220,4 +220,11 @@ public final class TestXWPFHeader {
public void testGetPictureDataById() {
// TODO
}
+
+ @Test
+ public void bug60293() throws Exception {
+ //test handling of non-standard header/footer options
+ XWPFDocument xwpf = XWPFTestDataSamples.openSampleDocument("60293.docx");
+ assertEquals(3, xwpf.getHeaderList().size());
+ }
}
Added: poi/trunk/test-data/document/60293.docx
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/document/60293.docx?rev=1767353&view=auto
==============================================================================
Binary file - no diff available.
Propchange: poi/trunk/test-data/document/60293.docx
------------------------------------------------------------------------------
--- svn:mime-type (added)
+++ svn:mime-type Mon Oct 31 19:02:06 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