https://issues.apache.org/bugzilla/show_bug.cgi?id=48934
authorfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 18 Mar 2010 13:54:27 +0000 (13:54 +0000)
committerfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 18 Mar 2010 13:54:27 +0000 (13:54 +0000)
The wrong sender was disconnected, should only be the sender holding the actual TCP connections.

git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@924776 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/tribes/transport/ReplicationTransmitter.java
java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java

index d7cf910..471d8dc 100644 (file)
@@ -76,12 +76,7 @@ public class ReplicationTransmitter implements ChannelSender {
      */
     public void sendMessage(ChannelMessage message, Member[] destination) throws ChannelException {
         MultiPointSender sender = getTransport();
-        try {
-            sender.sendMessage(destination,message);
-        }catch (ChannelException x) {
-            sender.disconnect();
-            throw x;
-        }
+        sender.sendMessage(destination,message);
     }
     
     
index d016ee8..43e2b1f 100644 (file)
@@ -52,9 +52,12 @@ public class PooledParallelSender extends PooledSender {
             try {
                 sender.sendMessage(destination, message);
                 sender.keepalive();
+            } catch (ChannelException x) {
+                sender.disconnect();
+                throw x;
             } finally {
-                if (!connected) disconnect();
                 returnSender(sender);
+                if (!connected) disconnect();
             }
         }
     }