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)