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/07/30 17:01:25 UTC

svn commit: r799306 - /incubator/uima/sandbox/trunk/uima-as/uimaj-as-core/src/main/java/org/apache/uima/aae/spi/transport/vm/UimaVmMessageListener.java

Author: cwiklik
Date: Thu Jul 30 15:01:25 2009
New Revision: 799306

URL: http://svn.apache.org/viewvc?rev=799306&view=rev
Log:
UIMA-1439 Modified onMessage() to return immediately if the service is stopping

Modified:
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-core/src/main/java/org/apache/uima/aae/spi/transport/vm/UimaVmMessageListener.java

Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-core/src/main/java/org/apache/uima/aae/spi/transport/vm/UimaVmMessageListener.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-core/src/main/java/org/apache/uima/aae/spi/transport/vm/UimaVmMessageListener.java?rev=799306&r1=799305&r2=799306&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-core/src/main/java/org/apache/uima/aae/spi/transport/vm/UimaVmMessageListener.java (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-core/src/main/java/org/apache/uima/aae/spi/transport/vm/UimaVmMessageListener.java Thu Jul 30 15:01:25 2009
@@ -73,6 +73,9 @@
     int requestType = 0;
     try {
       latch.await();
+      if ( controller != null && controller.equals(controller.isStopped() ) ) {
+        return; // throw away the message, we are stopping
+      }
       if (UimaMessageValidator.isValidMessage(aMessage, controller)) {
         MessageContext msgContext = aMessage.toMessageContext(controller.getName());
         if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.FINEST)) {
@@ -88,9 +91,12 @@
           // want to change it once
           concurrentThreads.put(Thread.currentThread().getId(), Thread.currentThread().getName());
         }
+        requestType = aMessage.getIntProperty(AsynchAEMessage.Command);
+        if ( requestType == AsynchAEMessage.Stop ) {
+          return;
+        }
         // Determine if this message is a request and either GetMeta, CPC, or Process
         doCheckpoint = isCheckpointWorthy(aMessage);
-        requestType = aMessage.getIntProperty(AsynchAEMessage.Command);
         // Checkpoint
         if (doCheckpoint) {
           controller.beginProcess(requestType);
@@ -98,6 +104,8 @@
         //  Process the message.
         handler.handle(msgContext);
       }
+    } catch( InterruptedException e) {
+      System.out.println("VMTransport Latch Interrupted - Processor is Stopping");
     } catch (Exception e) {
       e.printStackTrace();
       if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.WARNING)) {