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); + } } }