From 6452b4c62f5f36de0aa193c8708f7e3a9125411b Mon Sep 17 00:00:00 2001 From: Tim Allison Date: Mon, 31 Oct 2016 19:02:06 +0000 Subject: 60293 -- Handle illegal "Odd" header/footer in XWPF git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1767353 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xwpf/model/XWPFHeaderFooterPolicy.java | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/ooxml/java') diff --git a/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java b/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java index 8ff59713af..682b1cfd48 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java +++ b/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java @@ -29,6 +29,7 @@ import org.apache.poi.xwpf.usermodel.XWPFHeader; 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); } } -- cgit v1.2.3