This is an automated email from the ASF dual-hosted git repository. tallison pushed a commit to branch branch_1x in repository https://gitbox.apache.org/repos/asf/tika.git
commit b1e86412b04d563d6f557d686602738957990c5d Author: tallison <[email protected]> AuthorDate: Tue Mar 23 14:32:05 2021 -0400 TIKA-3335 -- handle bad xml more robustly when checking for encryption --- .../org/apache/tika/parser/odf/OpenDocumentManifestHandler.java | 8 ++++++++ .../main/java/org/apache/tika/parser/odf/OpenDocumentParser.java | 9 ++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentManifestHandler.java b/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentManifestHandler.java index 65dcaf5..ca9a9ec 100644 --- a/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentManifestHandler.java +++ b/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentManifestHandler.java @@ -34,6 +34,14 @@ import org.apache.tika.sax.ContentHandlerDecorator; */ class OpenDocumentManifestHandler extends ContentHandlerDecorator { + /** + * + * @param namespaceURI + * @param localName + * @param qName + * @param attrs + * @throws SAXException wrapping a {@link EncryptedDocumentException} if the file is encrypted + */ @Override public void startElement( String namespaceURI, String localName, String qName, diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java b/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java index f609e89..babaac2 100644 --- a/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java +++ b/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java @@ -256,7 +256,14 @@ public class OpenDocumentParser extends AbstractParser { return; } if (entry.getName().contains("manifest.xml")) { - checkForEncryption(zip, context); + try { + checkForEncryption(zip, context); + } catch (SAXException e) { + if (e.getCause() != null && e.getCause() instanceof EncryptedDocumentException) { + throw e; + } + //else, swallow for now + } } if (entry.getName().equals("mimetype")) { String type = IOUtils.toString(zip, UTF_8).trim();
