Author: cwiklik
Date: Tue Mar 12 20:41:25 2013
New Revision: 1455702

URL: http://svn.apache.org/r1455702
Log:
UIMA-2736 when running in async mode, dont de-serialize child CASes from the CM 
and just throw the message away after sending FreeCasRequest to the CM

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=1455702&r1=1455701&r2=1455702&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
 Tue Mar 12 20:41:25 2013
@@ -1396,7 +1396,10 @@ public abstract class BaseUIMAAsynchrono
         deserializeAndCompleteProcessingReply(casReferenceId, message, 
cachedRequest, pt, doNotify);
       }
     } else if (message.propertyExists(AsynchAEMessage.InputCasReference)) {
-      handleProcessReplyFromCasMultiplier(message, casReferenceId, payload);
+       int command = message.getIntProperty(AsynchAEMessage.Command);
+       if (AsynchAEMessage.ServiceInfo != command) {
+             handleProcessReplyFromCasMultiplier(message, casReferenceId, 
payload);
+       }
     } else {
       if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.INFO)) {
         // Most likely expired message. Already handled as timeout. Discard 
the message and move on
@@ -1472,7 +1475,13 @@ public abstract class BaseUIMAAsynchrono
       return;
     }
     if (inputCasCachedRequest.isSynchronousInvocation()) {
-      handleProcessReplyFromSynchronousCall(inputCasCachedRequest, message);
+       // with synchronous invocation, child CASes are thrown away. With sync 
API, the UIMA-AS client
+       // is not using callbacks. 
+       if ( casReferenceId.equals(inputCasCachedRequest)) {
+             handleProcessReplyFromSynchronousCall(inputCasCachedRequest, 
message);
+       } else {
+               return;
+       }
     }
     CAS cas = null;
     if (message instanceof TextMessage) {


Reply via email to