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