Author: cwiklik
Date: Mon Oct 17 19:53:12 2016
New Revision: 1765361

URL: http://svn.apache.org/viewvc?rev=1765361&view=rev
Log:
UIMA-5123 Fixed client side hangs

Modified:
    
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java
    
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java
    
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java

Modified: 
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java?rev=1765361&r1=1765360&r2=1765361&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java
 Mon Oct 17 19:53:12 2016
@@ -340,6 +340,9 @@ public class BaseUIMAAsynchronousEngine_
   }
        public void stop() {
                try {
+                         System.out.println(this.getClass().getName()+".stop() 
- Stopping UIMA-AS Client");
+                         stopConnection();
+
                      super.doStop();
                      if (!running) {
                        return;
@@ -353,8 +356,8 @@ public class BaseUIMAAsynchronousEngine_
                        sender.doStop();
                      }
                          try {
-                                 
System.out.println(this.getClass().getName()+".stop() - Stopping UIMA-AS 
Client");
-                               stopConnection();
+//                               
System.out.println(this.getClass().getName()+".stop() - Stopping UIMA-AS 
Client");
+//                             stopConnection();
                                // Undeploy all containers
                                undeploy();
                            clientCache.clear();

Modified: 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java?rev=1765361&r1=1765360&r2=1765361&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java
 Mon Oct 17 19:53:12 2016
@@ -274,6 +274,14 @@ public abstract class BaseMessageSender
       }
       //  blocks until the connection is re-established with a broker
       engine.recoverSharedConnectionIfClosed();
+      
+      SharedConnection sharedConnection = 
+                 engine.lookupConnection(engine.getBrokerURI());
+
+      if ( !engine.running || sharedConnection.getClientCount() == 0) {
+         break;
+      }
+     
       //  get the producer initialized from a valid connection
       producer = getMessageProducer();
       //  Check if the request should be rejected. It would be the case if the 
connection was invalid and

Modified: 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java?rev=1765361&r1=1765360&r2=1765361&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
 Mon Oct 17 19:53:12 2016
@@ -2909,8 +2909,9 @@ public abstract class BaseUIMAAsynchrono
           //  will retry until successful or the client is not running
         }
       }
+       
       //  if still running inject new connection
-      if ( running ) {
+      if ( running && sharedConnection.getClientCount() > 0) {
         //  Inject a new Connection object into an object that sends 
         //  messages to a service. This call invalidates all Session
         //  and Producer objects.
@@ -3204,7 +3205,9 @@ public abstract class BaseUIMAAsynchrono
         client.state = ClientState.RUNNING;
       }
     }
-    
+    public void stop() {
+       stop = true;
+    }
     public void start() throws Exception {
       if ( connectionValidator != null && 
connectionValidator.connectionClosedOrInvalid(connection) ) {
         throw new ResourceInitializationException(new Exception("Unable to 
start JMS connection that is not open."));


Reply via email to