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