From c3c9f66d0de89a0ba4a6efce1841a198723840e8 Mon Sep 17 00:00:00 2001 From: David Pilato Date: Fri, 20 Feb 2015 19:02:43 +0100 Subject: [PATCH] Indexing docx file fails I use ElasticSearch 1.4.3 with mapper-attachment plugin 2.4.2 (TIKA 1.7). I get an error when indexing **specific** docx file: > "[DEBUG][org.elasticsearch.index.mapper.attachment.AttachmentMapper] Failed to extract [-1] characters of text for [null]: [org.apache.poi.xwpf.usermodel.XWPFSDT.getContent()Lorg/apache/poi/xwpf/usermodel/ISDTContent;]" But if i use mapper-attachment plugin 2.4.1 (TIKA 1.5) there is no error and content is parsed successfully. Caused by this change #94. Closes #104. --- pom.xml | 34 +---- src/main/assemblies/plugin.xml | 4 - .../mapper/attachment/AttachmentMapper.java | 1 + .../index/mapper/xcontent/VariousDocTest.java | 128 ++++++++++++++++++ src/test/resources/log4j.xml | 2 +- .../index/mapper/xcontent/issue-104.docx | Bin 0 -> 58480 bytes 6 files changed, 131 insertions(+), 38 deletions(-) create mode 100644 src/test/java/org/elasticsearch/index/mapper/xcontent/VariousDocTest.java create mode 100644 src/test/resources/org/elasticsearch/index/mapper/xcontent/issue-104.docx diff --git a/pom.xml b/pom.xml index 8fb9ed6efc1c4..0f06684278394 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ - 3.10.1 + @@ -53,38 +53,6 @@ elasticsearch - - - org.apache.poi - poi - ${poi.version} - - - org.apache.poi - poi-ooxml - ${poi.version} - - - stax - stax-api - - - xml-apis - xml-apis - - - - - org.apache.poi - poi-ooxml-schemas - ${poi.version} - - - org.apache.poi - poi-scratchpad - ${poi.version} - - org.apache.tika diff --git a/src/main/assemblies/plugin.xml b/src/main/assemblies/plugin.xml index 96a84137fdb48..eb43f4279be00 100644 --- a/src/main/assemblies/plugin.xml +++ b/src/main/assemblies/plugin.xml @@ -20,10 +20,6 @@ true org.apache.tika:tika-parsers - org.apache.poi:poi - org.apache.poi:poi-ooxml - org.apache.poi:poi-ooxml-schemas - org.apache.poi:poi-scratchpad diff --git a/src/main/java/org/elasticsearch/index/mapper/attachment/AttachmentMapper.java b/src/main/java/org/elasticsearch/index/mapper/attachment/AttachmentMapper.java index 5186bab16cc79..1dc6cb6d2d203 100644 --- a/src/main/java/org/elasticsearch/index/mapper/attachment/AttachmentMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/attachment/AttachmentMapper.java @@ -454,6 +454,7 @@ public void parse(ParseContext context) throws IOException { throw new MapperParsingException("Failed to extract [" + indexedChars + "] characters of text for [" + name + "]", e); } else { logger.debug("Failed to extract [{}] characters of text for [{}]: [{}]", indexedChars, name, e.getMessage()); + logger.trace("exception caught", e); } return; } diff --git a/src/test/java/org/elasticsearch/index/mapper/xcontent/VariousDocTest.java b/src/test/java/org/elasticsearch/index/mapper/xcontent/VariousDocTest.java new file mode 100644 index 0000000000000..f3aa5ffaadf8a --- /dev/null +++ b/src/test/java/org/elasticsearch/index/mapper/xcontent/VariousDocTest.java @@ -0,0 +1,128 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.index.mapper.xcontent; + +import org.elasticsearch.common.bytes.BytesReference; +import org.elasticsearch.common.settings.ImmutableSettings; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.DocumentMapperParser; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.attachment.AttachmentMapper; +import org.elasticsearch.test.ElasticsearchTestCase; +import org.junit.Test; + +import java.io.IOException; +import java.io.InputStream; + +import static org.elasticsearch.common.io.Streams.copyToBytesFromClasspath; +import static org.elasticsearch.common.io.Streams.copyToStringFromClasspath; +import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; +import static org.elasticsearch.plugin.mapper.attachments.tika.TikaInstance.tika; +import static org.hamcrest.Matchers.isEmptyOrNullString; +import static org.hamcrest.Matchers.not; + +/** + * Test for different documents + */ +public class VariousDocTest extends ElasticsearchTestCase { + + /** + * Test for https://github.com/elasticsearch/elasticsearch-mapper-attachments/issues/104 + */ + @Test + public void testWordDocxDocument104() throws Exception { + testTika("issue-104.docx", false); + testMapper("issue-104.docx", false); + } + + /** + * Test for encrypted PDF + */ + @Test + public void testEncryptedPDFDocument() throws Exception { + testTika("encrypted.pdf", true); + // TODO Remove when this will be fixed in Tika. See https://issues.apache.org/jira/browse/TIKA-1548 + System.clearProperty("sun.font.fontmanager"); + testMapper("encrypted.pdf", true); + } + + /** + * Test for HTML + */ + @Test + public void testHtmlDocument() throws Exception { + testTika("htmlWithEmptyDateMeta.html", false); + testMapper("htmlWithEmptyDateMeta.html", false); + } + + /** + * Test for XHTML + */ + @Test + public void testXHtmlDocument() throws Exception { + testTika("testXHTML.html", false); + testMapper("testXHTML.html", false); + } + + /** + * Test for TXT + */ + @Test + public void testTxtDocument() throws Exception { + testTika("text-in-english.txt", false); + testMapper("text-in-english.txt", false); + } + + protected void testTika(String filename, boolean errorExpected) { + try (InputStream is = VariousDocTest.class.getResourceAsStream(filename)) { + String parsedContent = tika().parseToString(is); + assertThat(parsedContent, not(isEmptyOrNullString())); + logger.debug("extracted content: {}", parsedContent); + } catch (Throwable e) { + if (!errorExpected) { + fail("exception caught: " + e.getMessage()); + } + } + } + + protected void testMapper(String filename, boolean errorExpected) throws IOException { + DocumentMapperParser mapperParser = MapperTestUtils.newMapperParser(ImmutableSettings.builder().build()); + mapperParser.putTypeParser(AttachmentMapper.CONTENT_TYPE, new AttachmentMapper.TypeParser()); + + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/test-mapping.json"); + DocumentMapper docMapper = mapperParser.parse(mapping); + byte[] html = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/" + filename); + + BytesReference json = jsonBuilder() + .startObject() + .field("_id", 1) + .startObject("file") + .field("_name", filename) + .field("_content", html) + .endObject() + .endObject().bytes(); + + ParseContext.Document doc = docMapper.parse(json).rootDoc(); + if (!errorExpected) { + assertThat(doc.get(docMapper.mappers().smartName("file").mapper().names().indexName()), not(isEmptyOrNullString())); + logger.debug("extracted content: {}", doc.get(docMapper.mappers().smartName("file").mapper().names().indexName())); + } + } +} diff --git a/src/test/resources/log4j.xml b/src/test/resources/log4j.xml index fe218dc24f0dd..eef62bd3739fd 100644 --- a/src/test/resources/log4j.xml +++ b/src/test/resources/log4j.xml @@ -25,7 +25,7 @@ - + diff --git a/src/test/resources/org/elasticsearch/index/mapper/xcontent/issue-104.docx b/src/test/resources/org/elasticsearch/index/mapper/xcontent/issue-104.docx new file mode 100644 index 0000000000000000000000000000000000000000..f126e20b32e308a78af8bfc60255bb512c6f82ff GIT binary patch literal 58480 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 W%Kih0pS1^nk`!31Qt;nctiJ$^nFP`R literal 0 HcmV?d00001