Author: cwiklik Date: Thu May 10 15:00:16 2012 New Revision: 1336731 URL: http://svn.apache.org/viewvc?rev=1336731&view=rev Log: UIMA-2392 Modified uima-as client to delete its temp reply queue from a broker as part of its stop cleanup
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/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=1336731&r1=1336730&r2=1336731&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 Thu May 10 15:00:16 2012 @@ -44,6 +44,8 @@ import org.apache.activemq.ActiveMQConne import org.apache.activemq.ActiveMQMessageConsumer; import org.apache.activemq.ActiveMQPrefetchPolicy; import org.apache.activemq.command.ActiveMQBytesMessage; +import org.apache.activemq.command.ActiveMQDestination; +import org.apache.activemq.command.ActiveMQTempDestination; import org.apache.activemq.command.ActiveMQTextMessage; import org.apache.uima.UIMAFramework; import org.apache.uima.UIMA_IllegalArgumentException; @@ -226,6 +228,16 @@ public class BaseUIMAAsynchronousEngine_ if ((sharedConnection = lookupConnection(brokerURI)) != null) { // Remove a client from registry sharedConnection.unregisterClient(this); + ActiveMQConnection amqc = (ActiveMQConnection)sharedConnection.getConnection(); + // Delete client's temp reply queue from AMQ Broker + if ( amqc != null && consumerDestination != null && + consumerDestination instanceof ActiveMQTempDestination ) { + try { + amqc.deleteTempDestination((ActiveMQTempDestination)consumerDestination); + } catch( Exception e) { + e.printStackTrace(); + } + } // The destroy method closes the JMS connection when // the number of // clients becomes 0, otherwise it is a no-op 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=1336731&r1=1336730&r2=1336731&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 Thu May 10 15:00:16 2012 @@ -2884,6 +2884,9 @@ public abstract class BaseUIMAAsynchrono // This loop attempts to recover broker connection every 5 seconds and ends when all clients // using this shared object terminate or a connection is recovered while( !stop ) { + if ( clientList.size() == 0 ) { + break; // no more active clients - break out of connection recovery + } try { // Attempt a new connection to a broker create();