Hello,

I ran into a problem when I tried to use jcc for Apache Tika 0.7.
I can construct org.apache.tika.parser.AutoDetectParser instance in
the main thread, but cannot in the child thread.
>From following code,

import threading, infopilejavalib
infopilejavalib.initVM()

def f():
    infopilejavalib.getVMEnv().attachCurrentThread()
    print infopilejavalib.AutoDetectParser() # fails

print infopilejavalib.AutoDetectParser() # succeeds
threading.Thread(target=f).start()

I got

org.apache.tika.parser.autodetectpar...@53fb57
Exception in thread Thread-1:
Traceback (most recent call last):
  File "c:\python26\lib\threading.py", line 525, in __bootstrap_inner
    self.run()
  File "c:\python26\lib\threading.py", line 477, in run
    self.__target(*self.__args, **self.__kwargs)
  File "wk\a.py", line 47, in f
    print infopilejavalib.AutoDetectParser() # fails
JavaError: sun.misc.ServiceConfigurationError:
org.apache.tika.parser.Parser: Provider
org.apache.tika.parser.asm.ClassParser not found
    Java stacktrace:
sun.misc.ServiceConfigurationError: org.apache.tika.parser.Parser:
Provider org.apache.tika.parser.asm.ClassParser not found
        at sun.misc.Service.fail(Unknown Source)
        at sun.misc.Service.access$000(Unknown Source)
        at sun.misc.Service$LazyIterator.next(Unknown Source)
        at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:147)
        at 
org.apache.tika.config.TikaConfig.getDefaultConfig(TikaConfig.java:207)
        at 
org.apache.tika.parser.AutoDetectParser.<init>(AutoDetectParser.java:46)

Investigating further, I found threads created by JNI don't have class loader.

def f():
    infopilejavalib.getVMEnv().attachCurrentThread()
    thread = infopilejavalib.Thread.currentThread()
    clsloader = thread.getContextClassLoader()
    print clsloader # prints None

threading.Thread(target=f).start()

This script print None as the context class loader.
I can call thread.setContextClassLoader() manually, but it might be
useful if jcc's attachCurrentThread() does it.

Thoughts?

-- 
Atsuo Ishimoto
Mail: ishim...@gembook.org
Blog: http://d.hatena.ne.jp/atsuoishimoto/
Twitter: atsuoishimoto

Reply via email to