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 2009/12/16 15:53:25 UTC

svn commit: r891266 - /incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/error/ErrorHandlerBase.java

Author: cwiklik
Date: Wed Dec 16 14:53:25 2009
New Revision: 891266

URL: http://svn.apache.org/viewvc?rev=891266&view=rev
Log:
UIMA-1704 Modified retryLastCommand() to force creation of a new temp queue and a listener on a remote delegate before retrying CAS 

Modified:
    incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/error/ErrorHandlerBase.java

Modified: incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/error/ErrorHandlerBase.java
URL: http://svn.apache.org/viewvc/incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/error/ErrorHandlerBase.java?rev=891266&r1=891265&r2=891266&view=diff
==============================================================================
--- incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/error/ErrorHandlerBase.java (original)
+++ incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/error/ErrorHandlerBase.java Wed Dec 16 14:53:25 2009
@@ -23,12 +23,12 @@
 import java.util.Map;
 
 import org.apache.uima.UIMAFramework;
+import org.apache.uima.aae.InputChannel;
 import org.apache.uima.aae.UIMAEE_Constants;
 import org.apache.uima.aae.controller.AggregateAnalysisEngineController;
 import org.apache.uima.aae.controller.AnalysisEngineController;
 import org.apache.uima.aae.controller.Endpoint;
 import org.apache.uima.aae.controller.PrimitiveAnalysisEngineController;
-import org.apache.uima.aae.error.handler.GetMetaErrorHandler;
 import org.apache.uima.aae.message.AsynchAEMessage;
 import org.apache.uima.aae.monitor.Monitor;
 import org.apache.uima.aae.monitor.statistics.LongNumericStatistic;
@@ -211,6 +211,19 @@
               break;
 
             case AsynchAEMessage.Process:
+              if ( anErrorContext.containsKey(AsynchAEMessage.Endpoint)) {
+                Endpoint masterEndpoint = (Endpoint)anErrorContext.get(AsynchAEMessage.Endpoint);
+
+                if (aController instanceof AggregateAnalysisEngineController && (masterEndpoint != null && masterEndpoint.getStatus() == Endpoint.FAILED)) {
+                  // Fetch an InputChannel that handles messages for a given delegate
+                  InputChannel iC = aController.getReplyInputChannel(masterEndpoint.getDelegateKey());
+                  // Create a new Listener, new Temp Queue and associate the listener with the Input Channel
+                  iC.createListener(masterEndpoint.getDelegateKey(), null);
+                  iC.removeDelegateFromFailedList(masterEndpoint.getDelegateKey());
+                  anEndpoint.setDestination(masterEndpoint.getDestination());
+                }
+                
+              }
               String casReferenceId = (String) anErrorContext.get(AsynchAEMessage.CasReference);
               System.out.println("Controller:" + aController.getComponentName()
                       + " >>>>>>>>>> Retrying Process For Cas Id:" + casReferenceId+" Delegate:"+anEndpoint.getDelegateKey());