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)