Author: maxcom
Date: Mon Sep 5 10:30:28 2011
New Revision: 1165230
URL: http://svn.apache.org/viewvc?rev=1165230&view=rev
Log:
Embedded file extraction is broken for some OOXML files (bug introduced few
commits ago)
Added:
tika/trunk/tika-parsers/src/test/resources/test-documents/EmbeddedDocument.docx
(with props)
Modified:
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/POIContainerExtractionTest.java
Modified:
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java
URL:
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java?rev=1165230&r1=1165229&r2=1165230&view=diff
==============================================================================
---
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java
(original)
+++
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java
Mon Sep 5 10:30:28 2011
@@ -38,6 +38,7 @@ import org.apache.tika.extractor.Parsing
import org.apache.tika.io.TikaInputStream;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
+import org.apache.tika.parser.microsoft.OfficeParser;
import org.apache.tika.sax.EmbeddedContentHandler;
import org.apache.tika.sax.XHTMLContentHandler;
import org.apache.xmlbeans.XmlException;
@@ -151,11 +152,9 @@ public abstract class AbstractOOXMLExtra
Metadata metadata = new Metadata();
TikaInputStream stream = null;
- DirectoryNode root = fs.getRoot();
- if (root.hasEntry("CONTENTS")) {
- stream = TikaInputStream.get(
- fs.createDocumentInputStream("CONTENTS"));
- } else if (root.hasEntry("\u0001Ole10Native")) {
+ OfficeParser.POIFSDocumentType dt =
OfficeParser.POIFSDocumentType.detectType(fs);
+
+ if (dt.equals(OfficeParser.POIFSDocumentType.OLE10_NATIVE)) {
Ole10Native ole =
Ole10Native.createFromEmbeddedOleObject(fs);
metadata.set(Metadata.RESOURCE_NAME_KEY, ole.getLabel());
@@ -163,13 +162,15 @@ public abstract class AbstractOOXMLExtra
if (data != null) {
stream = TikaInputStream.get(data);
}
- }
- if (stream != null
- && embeddedExtractor.shouldParseEmbedded(metadata)) {
- embeddedExtractor.parseEmbedded(
- stream, new EmbeddedContentHandler(handler),
- metadata, false);
+ if (stream != null
+ && embeddedExtractor.shouldParseEmbedded(metadata)) {
+ embeddedExtractor.parseEmbedded(
+ stream, new EmbeddedContentHandler(handler),
+ metadata, false);
+ }
+ } else {
+ handleEmbeddedFile(part, handler);
}
} catch (FileNotFoundException e) {
// There was no CONTENTS entry, so skip this part
Modified:
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/POIContainerExtractionTest.java
URL:
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/POIContainerExtractionTest.java?rev=1165230&r1=1165229&r2=1165230&view=diff
==============================================================================
---
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/POIContainerExtractionTest.java
(original)
+++
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/POIContainerExtractionTest.java
Mon Sep 5 10:30:28 2011
@@ -253,4 +253,13 @@ public class POIContainerExtractionTest
assertEquals("smbprn.00009008.KdcPjl.pdf", handler.filenames.get(1));
assertEquals(TYPE_PDF, handler.mediaTypes.get(1));
}
+
+ public void testEmbeddedOfficeFilesXML() throws Exception {
+ ContainerExtractor extractor = new ParserContainerExtractor();
+ TrackingHandler handler;
+
+ handler = process("EmbeddedDocument.docx", extractor, false);
+
assertTrue(handler.filenames.contains("Microsoft_Office_Excel_97-2003_Worksheet1.bin"));
+ assertEquals(2, handler.filenames.size());
+ }
}
Added:
tika/trunk/tika-parsers/src/test/resources/test-documents/EmbeddedDocument.docx
URL:
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/resources/test-documents/EmbeddedDocument.docx?rev=1165230&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
tika/trunk/tika-parsers/src/test/resources/test-documents/EmbeddedDocument.docx
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream