diff --git a/src/org/jgroups/blocks/BasicConnectionTable.java b/src/org/jgroups/blocks/BasicConnectionTable.java index 38f0aa3c142..6162eb41f97 100644 --- a/src/org/jgroups/blocks/BasicConnectionTable.java +++ b/src/org/jgroups/blocks/BasicConnectionTable.java @@ -647,6 +647,16 @@ String printCookie(byte[] c) { public void run() { + try { + _run(); + } + finally { + receiverThread=null; + closeSocket(); + } + } + + protected void _run() { while(receiverThread != null && receiverThread.equals(Thread.currentThread()) && is_running) { try { if(in == null) { @@ -675,8 +685,8 @@ public void run() { } if(log.isTraceEnabled()) log.trace("ConnectionTable.Connection.Receiver terminated"); - receiverThread=null; - closeSocket(); + // receiverThread=null; + // closeSocket(); // remove(peer_addr); }