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