From e95bbaeefe9d0664b5229fcb43b90bd4ff9088f1 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Thu, 9 Apr 2015 09:09:32 +0200 Subject: [PATCH] no-jira: catch number format exception --- .../document/file/WordOOXMLDocument.java | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/olat/search/service/document/file/WordOOXMLDocument.java b/src/main/java/org/olat/search/service/document/file/WordOOXMLDocument.java index 4e82911f5b7..310580c26d0 100644 --- a/src/main/java/org/olat/search/service/document/file/WordOOXMLDocument.java +++ b/src/main/java/org/olat/search/service/document/file/WordOOXMLDocument.java @@ -29,6 +29,7 @@ import org.olat.core.gui.util.CSSHelper; import org.olat.core.logging.OLog; import org.olat.core.logging.Tracing; import org.olat.core.util.FileUtils; +import org.olat.core.util.StringHelper; import org.olat.core.util.io.ShieldInputStream; import org.olat.core.util.vfs.VFSLeaf; import org.olat.search.service.SearchResourceContext; @@ -87,16 +88,28 @@ public class WordOOXMLDocument extends FileDocument { doc.setContent(0, dh.getContent()); } else if(name.startsWith(HEADER) && name.endsWith(".xml")) { String position = name.substring(HEADER.length(), name.indexOf(".xml")); - - OfficeDocumentHandler dh = new OfficeDocumentHandler(); - parse(new ShieldInputStream(zip), dh); - doc.setHeader(Integer.parseInt(position), dh.getContent()); + if(StringHelper.isLong(position)) { + try { + OfficeDocumentHandler dh = new OfficeDocumentHandler(); + parse(new ShieldInputStream(zip), dh); + doc.setHeader(Integer.parseInt(position), dh.getContent()); + } catch (NumberFormatException e) { + log.warn("", e); + //if position not a position, go head + } + } } else if(name.startsWith(FOOTER) && name.endsWith(".xml")) { String position = name.substring(FOOTER.length(), name.indexOf(".xml")); - - OfficeDocumentHandler dh = new OfficeDocumentHandler(); - parse(new ShieldInputStream(zip), dh); - doc.setFooter(Integer.parseInt(position), dh.getContent()); + if(StringHelper.isLong(position)) { + try { + OfficeDocumentHandler dh = new OfficeDocumentHandler(); + parse(new ShieldInputStream(zip), dh); + doc.setFooter(Integer.parseInt(position), dh.getContent()); + } catch (NumberFormatException e) { + log.warn("", e); + //if position not a position, go head + } + } } entry = zip.getNextEntry(); } -- GitLab