Author: jbellis
Date: Tue Sep 21 21:27:27 2010
New Revision: 999651

URL: http://svn.apache.org/viewvc?rev=999651&view=rev
Log:
clean up socket close code.  patch by jbellis for CASSANDRA-1528

Modified:
    cassandra/branches/cassandra-0.6/CHANGES.txt
    
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/net/IncomingTcpConnection.java

Modified: cassandra/branches/cassandra-0.6/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/CHANGES.txt?rev=999651&r1=999650&r2=999651&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.6/CHANGES.txt Tue Sep 21 21:27:27 2010
@@ -24,10 +24,12 @@
  * make IndexInterval configurable (CASSANDRA-1488)
  * remove tombstones during non-major compactions when bloom filter
    verifies that row does not exist in other sstables (CASSANDRA-1074)
- * fix replaying the last mutation in a commitlog unnecessarily 
(CASSANDRA-1512)
+ * fix replaying the last mutation in a commitlog unnecessarily 
+   (CASSANDRA-1512)
  * invoke getDefaultUncaughtExceptionHandler from DTPE with the original
    exception rather than the ExecutionException wrapper (CASSANDRA-1226)
  * RowWarningThresholdInMB=64 in sample configuration
+ * Close intra-node sockets when connection is broken (CASSANDRA-1528)
 
 
 0.6.5

Modified: 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/net/IncomingTcpConnection.java?rev=999651&r1=999650&r2=999651&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
 (original)
+++ 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
 Tue Sep 21 21:27:27 2010
@@ -38,6 +38,7 @@ public class IncomingTcpConnection exten
 
     public IncomingTcpConnection(Socket socket)
     {
+        assert socket != null;
         this.socket = socket;
         try
         {
@@ -45,6 +46,7 @@ public class IncomingTcpConnection exten
         }
         catch (IOException e)
         {
+            close();
             throw new IOError(e);
         }
     }
@@ -80,32 +82,29 @@ public class IncomingTcpConnection exten
             {
                 if (logger.isTraceEnabled())
                     logger.trace("eof reading from socket; closing", e);
-                try
-                {
-                    socket.close();
-                }
-                catch (IOException e2)
-                {
-                    if (logger.isDebugEnabled())
-                        logger.debug("error closing socket", e2);
-                }
                 break;
             }
             catch (IOException e) 
             {
                 if (logger.isDebugEnabled())
                     logger.debug("error reading from socket; closing", e);
-                try
-                {
-                    socket.close();
-                }
-                catch (IOException e2)
-                {
-                    if (logger.isDebugEnabled())
-                        logger.debug("error closing socket", e2);
-                }
                 break;
             }
         }
+
+        close();
+    }
+
+    private void close()
+    {
+        try
+        {
+            socket.close();
+        }
+        catch (IOException e)
+        {
+            if (logger.isDebugEnabled())
+                logger.debug("error closing socket", e);
+        }
     }
 }


Reply via email to