Author: cwiklik
Date: Thu Sep  9 13:32:17 2010
New Revision: 995420

URL: http://svn.apache.org/viewvc?rev=995420&view=rev
Log:
UIMA-1867 modified process() to detect send failures and to force CAS release

Modified:
    
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java

Modified: 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java?rev=995420&r1=995419&r2=995420&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java
 Thu Sep  9 13:32:17 2010
@@ -629,9 +629,16 @@ public class PrimitiveAnalysisEngineCont
           // Send generated CAS to the client
           if (!stopped) {
             getOutputChannel().sendReply(newEntry, anEndpoint);
+            // Check for delivery failure. The client may have terminated 
while an input CAS was being processed
+            if ( childCasStateEntry.deliveryToClientFailed() ) {
+                 if ( 
cmOutstandingCASes.containsKey(childCasStateEntry.getCasReferenceId())) {
+                 
cmOutstandingCASes.remove(childCasStateEntry.getCasReferenceId());
+                 }
+                 dropCAS(childCasStateEntry.getCasReferenceId(), true);
+            }
           }
         }
-        // Remove the new CAS state entry from the local cache if this a top 
level primitive.
+        // Remove new CAS state entry from the local cache if this is a top 
level primitive.
         // If not top level, the client (an Aggregate) will remove this entry 
when this new
         // generated CAS reaches Final State.
         if (isTopLevelComponent()) {


Reply via email to