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/01/10 16:00:53 UTC

svn commit: r1229575 - in /uima/uima-as/trunk: uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/ uimaj-as-core/src/main/java/org/apache/uima/aae/controller/

Author: cwiklik
Date: Tue Jan 10 15:00:53 2012
New Revision: 1229575

URL: http://svn.apache.org/viewvc?rev=1229575&view=rev
Log:
UIMA-2309 While in quiesce mode, release AE instance as soon as the Primitive is done processing

Modified:
    uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java
    uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineInstancePoolWithThreadAffinity.java
    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-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java?rev=1229575&r1=1229574&r2=1229575&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java (original)
+++ uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java Tue Jan 10 15:00:53 2012
@@ -622,8 +622,8 @@ public class JmsEndpointConnection_impl 
       }
       // If the controller has been stopped no need to send messages
       if (controller.isStopped()) {
-        return true;
-      } else {
+        return false;
+       } else {
         if (e instanceof JMSException) {
           handleJmsException((JMSException) e);
           //	whoever called this method is interested in knowing that there was JMS Exception

Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineInstancePoolWithThreadAffinity.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineInstancePoolWithThreadAffinity.java?rev=1229575&r1=1229574&r2=1229575&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineInstancePoolWithThreadAffinity.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineInstancePoolWithThreadAffinity.java Tue Jan 10 15:00:53 2012
@@ -48,8 +48,14 @@ public class AnalysisEngineInstancePoolW
   public void checkin(AnalysisEngine anAnalysisEngine) throws Exception {
 	  try {
 		  lock.acquireUninterruptibly();
-		  aeInstanceMap.put(Thread.currentThread().getId(), anAnalysisEngine);
-	  } catch( Exception e) {
+		  // Call destroy() on AE on checkin if the UIMA AS process is in quiesce mode  
+		  if ( destroyAEInstanceIfFree ) {
+		    System.out.println("........... AnalysisEngineInstancePool.checkin() - Thread:"+Thread.currentThread().getId()+" calling destroy() on AE checkin");
+		    anAnalysisEngine.destroy();
+		  } else {
+	      aeInstanceMap.put(Thread.currentThread().getId(), anAnalysisEngine);
+		  }
+ 	  } catch( Exception e) {
 		  e.printStackTrace();
 		  throw e;
 	  } finally {
@@ -97,6 +103,7 @@ public class AnalysisEngineInstancePoolW
    * @see org.apache.uima.aae.controller.AnalysisEngineInstancePool#destroy()
    */
   public void destroy() throws Exception {
+    System.out.println("....... AnalysisEngineInstancePool.destroy() was called");
 	  //	set the flag so that any AE instance returned from PrimitiveController
 	  //    will be destroyed. 
 	  destroyAEInstanceIfFree = true;

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=1229575&r1=1229574&r2=1229575&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 Tue Jan 10 15:00:53 2012
@@ -489,6 +489,8 @@ public class PrimitiveAnalysisEngineCont
 	        ae.destroy();
 	      }
 	    }
+	  } catch( AsynchAEException e) {
+	    //  No-op. AE instance not found. Most likely, the UIMA AS service is in shutdown state
 	  } catch( Exception e) {
 		  e.printStackTrace();
 	  }