[jira] [Updated] (UIMA-5529) DUCC: Serialization of AnalysisEngineProcessException fails in JP

2017-08-11 Thread Jerry Cwiklik (JIRA)

 [ 
https://issues.apache.org/jira/browse/UIMA-5529?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry Cwiklik updated UIMA-5529:

Fix Version/s: (was: 2.1.0-Ducc)
   2.2.1-Ducc

> 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.2.1-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 fix 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 Object serialization of the 
> AnalysisEngineProcessException and use this instead:
> StringWriter sw = new StringWriter();
> t.printStackTrace(new PrintWriter(sw));
> serializedCause =  sw.toString();
> where t = AnalysisEngineProcessException 
> The entire stack trace is captured as a String then wrapped in a 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)


[jira] [Updated] (UIMA-5529) DUCC: Serialization of AnalysisEngineProcessException fails in JP

2017-08-08 Thread Jerry Cwiklik (JIRA)

 [ 
https://issues.apache.org/jira/browse/UIMA-5529?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry Cwiklik updated UIMA-5529:

Description: 
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 fix 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 Object serialization of the 
AnalysisEngineProcessException and use this instead:
StringWriter sw = new StringWriter();
t.printStackTrace(new PrintWriter(sw));
serializedCause =  sw.toString();

where t = AnalysisEngineProcessException 

The entire stack trace is captured as a String then wrapped in a 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.

  was:
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.


> 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 fix 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 Object serialization of the 
> AnalysisEngineProcessException and use this instead:
> StringWriter sw = new StringWriter();
> t.printStackTrace(new PrintWriter(sw));
> serializedCause =  sw.toString();
> where t = AnalysisEngineProcessException 
> The entire stack trace is captured as a String then wrapped in a 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)