Jerry Cwiklik created UIMA-5529:
-----------------------------------

             Summary: DUCC: Serialization of AnalysisEngineProcessException 
fails in JP
                 Key: UIMA-5529
                 URL: https://issues.apache.org/jira/browse/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:

java.io.NotSerializableException: sun.misc.Launcher$AppClassLoader

It turns out that this is caused by changes made to the 
InternationalizedException class as described in JIRA 
https://issues.apache.org/jira/browse/UIMA-4793
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
(v6.4.14#64029)

Reply via email to