Description
I don't know whether this was addressed in 1.18, but Tika seemingly uses the wrong classloader when loading some classes by reflection.
In ManifoldCF, there's a two-tiered classloader hierarchy. Tika runs in the higher class level. Its expectation is that classes that are loaded via reflection use the classloader associated with the class that is resolving the reflection, NOT the thread classloader. That's standard Java practice.
But apparently there's a place where Tika doesn't do it that way:
Error tossed: org/apache/poi/POIXMLTextExtractor java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTextExtractor at org.apache.tika.parser.microsoft.ooxml.OOXMLParser.parse(OOXMLParser.java:106) ~[?:?] at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280) ~[?:?] at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280) ~[?:?] at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:143) ~[?:?] at org.apache.manifoldcf.agents.transformation.tika.TikaParser.parse(TikaParser.java:74) ~[?:?]
Attachments
Issue Links
- blocks
-
CONNECTORS-1516 Class not found exception using Tika transformer
- Resolved
- is related to
-
TIKA-2552 Upgrade to POI 4.0.0 when available
- Resolved
- links to