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();