Uploaded image for project: 'UIMA'
  1. UIMA
  2. UIMA-4501

intermittent failure - uima class loader with multi-threads

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.7.0SDK
    • 2.8.0SDK
    • Core Java Framework
    • None

    Description

      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.

      Attachments

        Activity

          People

            schor Marshall Schor
            schor Marshall Schor
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: