activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jgo...@apache.org
Subject svn commit: r1294898 - in /activemq/activemq-dotnet/Apache.NMS.Stomp/trunk: ./ src/main/csharp/Connection.cs
Date Tue, 28 Feb 2012 23:43:33 GMT
Author: jgomes
Date: Tue Feb 28 23:43:33 2012
New Revision: 1294898

URL: http://svn.apache.org/viewvc?rev=1294898&view=rev
Log:
Merged revision(s) 1294897 from activemq/activemq-dotnet/Apache.NMS.Stomp/branches/1.5.x:
Trigger the fault tolerant recovery logic when a connection exception occurs.
Fixes [AMQNET-371]. (See https://issues.apache.org/jira/browse/AMQNET-371)

........

Modified:
    activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/   (props changed)
    activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Connection.cs

Propchange: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb 28 23:43:33 2012
@@ -1 +1 @@
-/activemq/activemq-dotnet/Apache.NMS.Stomp/branches/1.5.x:1135832,1137086
+/activemq/activemq-dotnet/Apache.NMS.Stomp/branches/1.5.x:1135832,1137086,1294897

Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Connection.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Connection.cs?rev=1294898&r1=1294897&r2=1294898&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Connection.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Connection.cs Tue Feb
28 23:43:33 2012
@@ -729,14 +729,27 @@ namespace Apache.NMS.Stomp
 
         internal void OnException(Exception error)
         {
-            // Will fire an exception listener callback if there's any set.
-            OnAsyncException(error);
+            if(this.transport.IsFaultTolerant)
+            {
+                Tracer.ErrorFormat("Attempting recovery from Exception: {0}", error.Message);
+                while(null != (error = error.InnerException))
+                {
+                    Tracer.ErrorFormat("   {0}", error.Message);
+                }
 
-            if(!this.closing.Value && !this.closed.Value)
+                OnTransportInterrupted(this.transport);
+            }
+            else
             {
-                // Perform the actual work in another thread to avoid lock contention
-                // and allow the caller to continue on in its error cleanup.
-                executor.QueueUserWorkItem(AsyncOnExceptionHandler, error);
+                // Will fire an exception listener callback if there's any set.
+                OnAsyncException(error);
+
+                if(!this.closing.Value && !this.closed.Value)
+                {
+                    // Perform the actual work in another thread to avoid lock contention
+                    // and allow the caller to continue on in its error cleanup.
+                    executor.QueueUserWorkItem(AsyncOnExceptionHandler, error);
+                }
             }
         }
 



Mime
View raw message