Author: cwiklik Date: Thu May 17 19:33:32 2012 New Revision: 1339813 URL: http://svn.apache.org/viewvc?rev=1339813&view=rev Log: UIMA-2304 Catch any exception while deserializing a reply containing Service exception
Modified: uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java Modified: uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java?rev=1339813&r1=1339812&r2=1339813&view=diff ============================================================================== --- uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java (original) +++ uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java Thu May 17 19:33:32 2012 @@ -1173,11 +1173,18 @@ public abstract class BaseUIMAAsynchrono private Exception retrieveExceptionFromMessage(Message message) throws Exception { Exception exception = null; - if (message instanceof ObjectMessage - && ((ObjectMessage) message).getObject() instanceof Exception) { - exception = (Exception) ((ObjectMessage) message).getObject(); - } else if (message instanceof TextMessage) { - exception = new UimaEEServiceException(((TextMessage) message).getText()); + try { + if (message instanceof ObjectMessage + && ((ObjectMessage) message).getObject() instanceof Exception) { + exception = (Exception) ((ObjectMessage) message).getObject(); + } else if (message instanceof TextMessage) { + exception = new UimaEEServiceException(((TextMessage) message).getText()); + } + } catch( Exception e) { + UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING, getClass().getName(), + "retrieveExceptionFromMessage", UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE, + "UIMAEE_exception__WARNING", e); + exception = new UimaEEServiceException("UIMA AS client is unable to de-serialize Exception from a remote service",e); } return exception; }