You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by "Jerry Cwiklik (JIRA)" <de...@uima.apache.org> on 2012/05/17 21:46:07 UTC

[jira] [Closed] (UIMA-2304) UIMA AS service serializes Exception object which may contain user defined Exception class not available to the client

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

Jerry Cwiklik closed UIMA-2304.
-------------------------------

       Resolution: Fixed
    Fix Version/s: 2.4.0AS

Turns out that serializing remote service exception into a String is not a good idea. There are use cases where the client code may need to look at the stack trace to determine the kind of failure and act on this accordingly. One example of this is the AdvancedFlowController which can be defined to ignore certain types of Exceptions happening in the remote delegate and allow a CAS to flow downstream despite the error. Also, there may be existing uima applications that depend on receiving full stack traces on failed CASes. Added a small fix to uima-as client to catch any exception that occurs during deserialization, wrap it in a generic uima-as exception and pass that on to the client.  
                
> UIMA AS service serializes Exception object which may contain user defined Exception class not available to the client
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: UIMA-2304
>                 URL: https://issues.apache.org/jira/browse/UIMA-2304
>             Project: UIMA
>          Issue Type: Bug
>          Components: Async Scaleout
>            Reporter: Jerry Cwiklik
>            Assignee: Jerry Cwiklik
>             Fix For: 2.4.0AS
>
>
> When AE throws an exception UIMA wraps it in AnalysisEngineProcessException which is handed off to UIMA AS. This exception is subsequently serialized as a java object and sent in a reply to the client. The client deserializes the cargo back to a java Exception and hands it off to the application via a callback. The problem is that the Exception stack trace may include user defined Exception class(es) which are not available to the client thus causing ClassNotFound while deserializing a reply. Modify UIMA AS service side to serialize an exception to a String and send that to the client.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira