You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by "Marshall Schor (JIRA)" <de...@uima.apache.org> on 2015/07/03 16:48:04 UTC
[jira] [Created] (UIMA-4501) intermittent failure - uima class
loader with multi-threads
Marshall Schor created UIMA-4501:
------------------------------------
Summary: intermittent failure - uima class loader with multi-threads
Key: UIMA-4501
URL: https://issues.apache.org/jira/browse/UIMA-4501
Project: UIMA
Issue Type: Bug
Components: Core Java Framework
Affects Versions: 2.7.0SDK
Reporter: Marshall Schor
Assignee: Marshall Schor
Fix For: 2.8.0SDK
Eddie found that a simple pipeline he wrote using an OpenNLP aggregate, for a DUCC test, occasionally failed with a certain combination of Java's, machines, data-being-processed. (It was pretty rare). The failure was java.lang.LinkageError: -- the java class that was trying to be loaded --, and, for the failing Java, no other details (other than the stack trace. The failure only happened if the OpenNlp aggregate was scaled out to run on multiple threads.
Cause was traced to a small detail documented here in Java 7 info on implementing Multithreaded ClassLoading: http://docs.oracle.com/javase/7/docs/technotes/guides/lang/cl-mt.html .
The UIMA Class loader was changed to support parallel class loading for Java 7 and beyond.
The problem is that the implementation didn't notice that the class loader using this facility has to have a mechanism to insure that "the protected defineClass() method is called only once for each class loader and class name pair." The UIMA class loader fails to do this, and I think that's what's causing this issue.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)