You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2012/05/17 21:33:33 UTC

svn commit: r1339813 - /uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java

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