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 2013/11/04 15:15:17 UTC
svn commit: r1538616 -
/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java
Author: cwiklik
Date: Mon Nov 4 14:15:16 2013
New Revision: 1538616
URL: http://svn.apache.org/r1538616
Log:
UIMA-3383 when quiescing dont stop listeners on temp reply queues
Modified:
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java
Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java?rev=1538616&r1=1538615&r2=1538616&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java Mon Nov 4 14:15:16 2013
@@ -2051,7 +2051,7 @@ public abstract class BaseAnalysisEngine
// Stops all input channels of this service, but keep temp reply queue input channels open
// to process replies.
- stopReceivingCASes();
+ stopReceivingCASes(false); // dont kill listeners on temp queues. The remotes may send replies
if ( this instanceof PrimitiveAnalysisEngineController_impl &&
((PrimitiveAnalysisEngineController_impl)this).aeInstancePool != null ) {
// Since we are quiescing, destroy all AEs that are in AE pool. Those that
@@ -2083,11 +2083,13 @@ public abstract class BaseAnalysisEngine
// on this controller when the cache becomes empty.
quiesceSemaphore.acquire();
}
+ stopReceivingCASes(true);
+ stopInputChannels(InputChannel.InputChannels, true);
System.out.println("UIMA-AS Service is Stopping, All CASes Have Been Processed");
} catch( InterruptedException e) {
}
- stop(false);
+ stop(true);
}
}
}
@@ -2284,7 +2286,7 @@ public abstract class BaseAnalysisEngine
iC.setTerminating();
}
}
- protected void stopReceivingCASes() {
+ protected void stopReceivingCASes(boolean stopAllListeners) {
InputChannel iC = null;
setInputChannelForNoRecovery();
@@ -2294,9 +2296,14 @@ public abstract class BaseAnalysisEngine
String key = it.next();
if (key != null && key.trim().length() > 0) {
iC = (InputChannel) inputChannelMap.get(key);
- if (iC != null) {
- iC.disconnectListenersFromQueue();
- }
+ if (iC != null ) {
+ if ( stopAllListeners ) {
+ System.out.println(">>>>>>>>>>>>>>> Closing Channel on Queue:"+iC.getInputQueueName());
+ iC.disconnectListenersFromQueue();
+ } else if ( iC.getInputQueueName() != null && !iC.getInputQueueName().startsWith("temp-queue")) {
+ iC.disconnectListenersFromQueue();
+ }
+ }
}
} catch (Exception e) {
if (iC != null) {