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 2016/10/17 19:53:12 UTC

svn commit: r1765361 - in /uima/uima-as/trunk: uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/

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."));