diff --git a/oak-lucene/pom.xml b/oak-lucene/pom.xml index b5b411cdd1d..e44169d4849 100644 --- a/oak-lucene/pom.xml +++ b/oak-lucene/pom.xml @@ -116,6 +116,7 @@ org.apache.lucene.sandbox.*;resolution:=optional, + org.apache.tika.parser.pdf;resolution:=optional, !org.apache.lucene.*, !org.apache.jackrabbit.oak.cache, !com.sun.management.*, diff --git a/oak-lucene/src/main/resources/org/apache/jackrabbit/oak/plugins/index/lucene/tika-config.xml b/oak-lucene/src/main/resources/org/apache/jackrabbit/oak/plugins/index/lucene/tika-config.xml index 54f229d6999..07e002c479b 100644 --- a/oak-lucene/src/main/resources/org/apache/jackrabbit/oak/plugins/index/lucene/tika-config.xml +++ b/oak-lucene/src/main/resources/org/apache/jackrabbit/oak/plugins/index/lucene/tika-config.xml @@ -24,7 +24,16 @@ - + + + + + + + + false + + application/x-archive diff --git a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/binary/FulltextBinaryTextExtractor.java b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/binary/FulltextBinaryTextExtractor.java index 5db229908ca..43ddb4dfc70 100644 --- a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/binary/FulltextBinaryTextExtractor.java +++ b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/binary/FulltextBinaryTextExtractor.java @@ -33,6 +33,7 @@ import org.apache.jackrabbit.oak.stats.StatisticsProvider; import org.apache.jackrabbit.oak.stats.StatsOptions; import org.apache.jackrabbit.oak.stats.TimerStats; +import org.apache.tika.config.ServiceLoader; import org.apache.tika.config.TikaConfig; import org.apache.tika.exception.TikaException; import org.apache.tika.exception.WriteLimitReachedException; @@ -287,7 +288,9 @@ private static TikaConfigHolder initializeTikaConfig(@Nullable IndexDefinition d String configSource = null; try { - Thread.currentThread().setContextClassLoader(FulltextIndexEditorContext.class.getClassLoader()); + ClassLoader newContextClassLoader = FulltextIndexEditorContext.class.getClassLoader(); + Thread.currentThread().setContextClassLoader(newContextClassLoader); + ServiceLoader.setContextClassLoader(newContextClassLoader); if (definition != null && definition.hasCustomTikaConfig()) { log.debug("[{}] Using custom tika config", definition.getIndexName()); configSource = "Custom config at " + definition.getIndexPath(); @@ -308,6 +311,7 @@ private static TikaConfigHolder initializeTikaConfig(@Nullable IndexDefinition d } finally { IOUtils.closeQuietly(configStream); Thread.currentThread().setContextClassLoader(current); + ServiceLoader.setContextClassLoader(null); // Tika default is null } return new TikaConfigHolder(TikaConfig.getDefaultConfig(), "Default Config"); } diff --git a/oak-search/src/main/resources/org/apache/jackrabbit/oak/plugins/index/search/spi/editor/tika-config.xml b/oak-search/src/main/resources/org/apache/jackrabbit/oak/plugins/index/search/spi/editor/tika-config.xml index 54f229d6999..07e002c479b 100644 --- a/oak-search/src/main/resources/org/apache/jackrabbit/oak/plugins/index/search/spi/editor/tika-config.xml +++ b/oak-search/src/main/resources/org/apache/jackrabbit/oak/plugins/index/search/spi/editor/tika-config.xml @@ -24,7 +24,16 @@ - + + + + + + + + false + + application/x-archive