You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tika.apache.org by "Chris A. Mattmann (JIRA)" <ji...@apache.org> on 2013/05/27 18:54:21 UTC

[jira] [Updated] (TIKA-1111) Class loading issues when running in OSGi environment

     [ https://issues.apache.org/jira/browse/TIKA-1111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chris A. Mattmann updated TIKA-1111:
------------------------------------

    Component/s: packaging
    
> Class loading issues when running in OSGi environment
> -----------------------------------------------------
>
>                 Key: TIKA-1111
>                 URL: https://issues.apache.org/jira/browse/TIKA-1111
>             Project: Tika
>          Issue Type: Bug
>          Components: packaging
>    Affects Versions: 1.3
>         Environment: Tika 1.3 (tika-core and tika-bundle OSGi bundles)
> Felix 2.0.5
>            Reporter: Niels Beekman
>
> When dom4j is on the system classpath, a class loading error occurs during detection of Office Open XML files:
> java.lang.ExceptionInInitializerError
> 	at org.apache.poi.openxml4j.opc.internal.unmarshallers.PackagePropertiesUnmarshaller.<clinit>(PackagePropertiesUnmarshaller.java:49)
> 	at org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:154)
> 	at org.apache.poi.openxml4j.opc.OPCPackage.<init>(OPCPackage.java:141)
> 	at org.apache.poi.openxml4j.opc.Package.<init>(Package.java:54)
> 	at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:99)
> 	at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:207)
> 	at org.apache.tika.parser.pkg.ZipContainerDetector.detectOfficeOpenXML(ZipContainerDetector.java:194)
> 	at org.apache.tika.parser.pkg.ZipContainerDetector.detectZipFormat(ZipContainerDetector.java:134)
> 	at org.apache.tika.parser.pkg.ZipContainerDetector.detect(ZipContainerDetector.java:77)
> 	at org.apache.tika.detect.CompositeDetector.detect(CompositeDetector.java:61)
> 	at org.apache.tika.detect.CompositeDetector.detect(CompositeDetector.java:61)
> 	at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:113)
> 	at org.apache.tika.parser.ParsingReader$ParsingTask.run(ParsingReader.java:221)
> 	at java.lang.Thread.run(Thread.java:662)
> Caused by: java.lang.ClassCastException: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory
> 	at org.dom4j.DocumentFactory.getInstance(DocumentFactory.java:97)
> 	at org.dom4j.tree.AbstractNode.<clinit>(AbstractNode.java:39)
> 	... 14 more
> As a workaround (maybe a solution), I modified the context classloader when running the detection (wrapped the detector and parser). This appears to be the common fix for dom4j, as it uses the context classloader during initialization. Ideally, the detectors and parsers would be running with their original loader (from ServiceLoader) as context class loader.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira