You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2019/12/17 12:26:04 UTC
[tika] 05/07: TIKA-3015 -- TNEFParser should call startDocument and
endDocument()
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 8e45fb073f79f8a62c4b5dbd608869db7c2b83a3
Author: tallison <ta...@apache.org>
AuthorDate: Mon Dec 16 16:44:19 2019 -0500
TIKA-3015 -- TNEFParser should call startDocument and endDocument()
---
.../main/java/org/apache/tika/parser/microsoft/TNEFParser.java | 9 ++++++---
.../java/org/apache/tika/parser/microsoft/TNEFParserTest.java | 6 ++++++
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java b/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java
index 484f0c5..fa3120e 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java
@@ -38,6 +38,7 @@ import org.apache.tika.mime.MediaType;
import org.apache.tika.parser.AbstractParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.sax.EmbeddedContentHandler;
+import org.apache.tika.sax.XHTMLContentHandler;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
@@ -80,7 +81,8 @@ public class TNEFParser extends AbstractParser {
// TODO: Move to title in Tika 2.0
metadata.set(TikaCoreProperties.TRANSITION_SUBJECT_TO_DC_TITLE, subject);
}
-
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ xhtml.startDocument();
// Recurse into the message body RTF
MAPIAttribute attr = msg.getMessageMAPIAttribute(MAPIProperty.RTF_COMPRESSED);
if (attr != null && attr instanceof MAPIRtfAttribute) {
@@ -88,7 +90,7 @@ public class TNEFParser extends AbstractParser {
handleEmbedded(
"message.rtf", "application/rtf",
rtf.getData(),
- embeddedExtractor, handler
+ embeddedExtractor, xhtml
);
}
@@ -106,9 +108,10 @@ public class TNEFParser extends AbstractParser {
}
handleEmbedded(
name, null, attachment.getContents(),
- embeddedExtractor, handler
+ embeddedExtractor, xhtml
);
}
+ xhtml.endDocument();
}
private void handleEmbedded(String name, String type, byte[] contents,
diff --git a/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/TNEFParserTest.java b/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/TNEFParserTest.java
index 8062555..39e5e31 100644
--- a/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/TNEFParserTest.java
+++ b/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/TNEFParserTest.java
@@ -95,4 +95,10 @@ public class TNEFParserTest extends AbstractPOIContainerExtractionTest {
assertEquals("quick.xml", handler.filenames.get(5));
assertEquals(MediaType.application("xml"), handler.mediaTypes.get(5));
}
+
+ @Test
+ public void testRTF() throws Exception {
+ String xml = getXML("testWINMAIL.dat").xml;
+ assertContains("Der schnelle braune", xml);
+ }
}