Jerry Cwiklik created UIMA-5529:

             Summary: DUCC: Serialization of AnalysisEngineProcessException 
fails in JP
                 Key: UIMA-5529
             Project: UIMA
          Issue Type: Bug
          Components: DUCC
            Reporter: Jerry Cwiklik
            Assignee: Jerry Cwiklik
             Fix For: 2.1.0-Ducc

If AE process() fails, the JP tries to serialize the exception before sending 
it to the JD. The AE throws a UIMA core AnalysisEngineProcessException which 
fails to serialize with: sun.misc.Launcher$AppClassLoader

It turns out that this is caused by changes made to the 
InternationalizedException class as described in JIRA
The fixed discussed in the JIRA broke serialization of uima exceptions. The 
InternationalizedException  class contains a member variable of type 
ClassLoader which is not serializable. 

For Ducc the fix is to avoid serialization of the Exception object and instead 
using this:
            StringWriter sw = new StringWriter();
            t.printStackTrace(new PrintWriter(sw));
            serializedCause =  sw.toString();

where t = AnalysisEngineProcessException 
The entire stack trace is captured as String, wrapped in java RuntimeException 
and sent to the JD for logging. 
Also, add a new job to the DUCC_HOME/example/simple 1-error.job which forces AE 
to throw an error.

This message was sent by Atlassian JIRA

Reply via email to