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 2017/12/07 16:52:54 UTC

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

Author: cwiklik
Date: Thu Dec  7 16:52:54 2017
New Revision: 1817396

URL: http://svn.apache.org/viewvc?rev=1817396&view=rev
Log:
UIMA-5665 synchronize connection recovery so that only one listener retries until success. 

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=1817396&r1=1817395&r2=1817396&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 Thu Dec  7 16:52:54 2017
@@ -167,6 +167,15 @@ public class UimaDefaultMessageListenerC
   public void setTargetedListener() {
 	  targetedListener = true;
   }
+  private static boolean connectionClosedOrFailed(ActiveMQConnection connection) {
+	    if (connection == null
+	            || connection.isClosed()
+	            || connection.isClosing()
+	            || connection.isTransportFailed()) {
+	      return true;
+	    }
+	    return false;
+  }
 
   /**
    * Overriden Spring's method that tries to recover from lost connection. We dont 
@@ -189,6 +198,10 @@ public class UimaDefaultMessageListenerC
     		} catch( SharedConnectionNotInitializedException ee) {
     			// the onnectionClosedOrFailed(c) below will test for null
     		}
+    		if ( !connectionClosedOrFailed(c) ) {
+    			//System.out.println("............. Thread:"+Thread.currentThread().getId()+" Connection restored - returning");
+    			return;
+    		}
     	    while (isRunning() && !terminating ) {
     	    	Connection tcon = null;
     		      try {