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) {