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;
   }


Reply via email to