tika-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bob Paulin (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TIKA-1507) Under OSGi, ForkParser failes to send core parser classes like ExternalParser
Date Sun, 12 Jul 2015 18:22:04 GMT

    [ https://issues.apache.org/jira/browse/TIKA-1507?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14623932#comment-14623932

Bob Paulin commented on TIKA-1507:

Attached a patch with a potential solution for your review.  Create a new package under tika-parser
org.apache.tika.parser.configuration for this type of file.  This allows the removal of the
org.apache.tika.parser.external package in the tika-parser project.  This prevents tika-core
and tika-parser from having packages with the same name (split packages).  This allows the
pom files to remain as is and allows each bundle to only export their own packages.  A small
change to the ExternalParserFactory file is also required to load the file from the new directory.
 Sorry for all the noise.

> Under OSGi, ForkParser failes to send core parser classes like ExternalParser
> -----------------------------------------------------------------------------
>                 Key: TIKA-1507
>                 URL: https://issues.apache.org/jira/browse/TIKA-1507
>             Project: Tika
>          Issue Type: Bug
>          Components: packaging, parser
>    Affects Versions: 1.6, 1.7
>            Reporter: Nick Burch
>         Attachments: TIKA-1507C.patch
> Under OSGi, if you try to use ForkParser with the Tesseract OCR parser, it will fail
> java.lang.NoClassDefFoundError: org/apache/tika/parser/external/ExternalParser
> 	at org.apache.tika.parser.ocr.TesseractOCRParser.hasTesseract(TesseractOCRParser.java:117)
> 	at org.apache.tika.parser.ocr.TesseractOCRParser.getSupportedTypes(TesseractOCRParser.java:91)
> 	at org.apache.tika.parser.CompositeParser.getParsers(CompositeParser.java:81)
> 	at org.apache.tika.parser.DefaultParser.getParsers(DefaultParser.java:95)
> 	at org.apache.tika.parser.CompositeParser.getParser(CompositeParser.java:209)
> 	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:244)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:622)
> 	at org.apache.tika.fork.ForkServer.call(ForkServer.java:144)
> 	at org.apache.tika.fork.ForkServer.processRequests(ForkServer.java:124)
> 	at org.apache.tika.fork.ForkServer.main(ForkServer.java:69)
> Caused by: java.lang.ClassNotFoundException: Unable to find class org.apache.tika.parser.external.ExternalParser
> 	at org.apache.tika.fork.ClassLoaderProxy.findClass(ClassLoaderProxy.java:117)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> 	... 13 more
> ExternalParser lives in the Tika Core jar, not the Tika Parsers one. This all works fine
outside of OSGi, so it looks like something about the OSGi bundling is causing the fork parser
to fail to send the parser-related classes from Tika Core over to the forked JVM

This message was sent by Atlassian JIRA

View raw message