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 2011/03/28 19:34:49 UTC

svn commit: r1086307 - /uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/UimaDefaultMessageListenerContainer.java

Author: cwiklik
Date: Mon Mar 28 17:34:49 2011
New Revision: 1086307

URL: http://svn.apache.org/viewvc?rev=1086307&view=rev
Log:
UIMA-2105 destroys listener on a temp reply queue after broker failure

Modified:
    uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/UimaDefaultMessageListenerContainer.java

Modified: uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/UimaDefaultMessageListenerContainer.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/UimaDefaultMessageListenerContainer.java?rev=1086307&r1=1086306&r2=1086307&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/UimaDefaultMessageListenerContainer.java (original)
+++ uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/UimaDefaultMessageListenerContainer.java Mon Mar 28 17:34:49 2011
@@ -225,7 +225,7 @@ public class UimaDefaultMessageListenerC
       UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING, this.getClass().getName(),
               "handleTempQueueFailure", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
               "UIMAJMS_jms_listener_failed_WARNING",
-              new Object[] { endpoint.getDestination(), getBrokerUrl(), t });
+              new Object[] { getDestination(), getBrokerUrl(), t });
     }
     // Check if the failure is due to the failed connection. Spring (and ActiveMQ) dont seem to
     // provide
@@ -241,7 +241,13 @@ public class UimaDefaultMessageListenerC
             t instanceof javax.jms.IllegalStateException
             && t.getMessage().equals("The Consumer is closed")) {
       if (controller != null && controller instanceof AggregateAnalysisEngineController) {
-        String delegateKey = ((AggregateAnalysisEngineController) controller)
+				//	If endpoint not set, this is a temp reply queue listener.
+        if ( endpoint == null ) {
+          destroy();
+          return;
+        }
+  
+      String delegateKey = ((AggregateAnalysisEngineController) controller)
                 .lookUpDelegateKey(endpoint.getEndpoint());
         try {
           if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.INFO)) {
@@ -885,6 +891,11 @@ public class UimaDefaultMessageListenerC
               "UIMAJMS_jms_listener_failed_WARNING",
               new Object[] { endpointName, getBrokerUrl(), arg0 });
     }
+
+    if ( getDestination() != null && ((ActiveMQDestination)getDestination()).isTemporary() ) {
+      handleTempQueueFailure(arg0);
+    }
+  
   }
 
   public void setTargetEndpoint(Endpoint anEndpoint) {