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