Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 a3b314908 -> da2d97142
  refs/heads/cassandra-2.1 a2ceb22c5 -> 4c22b165c


Fix leaking validator FH in StreamWriter
patch by Joshua McKenzie; reviewed by jbellis for CASSANDRA-6832


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/da2d9714
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/da2d9714
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/da2d9714

Branch: refs/heads/cassandra-2.0
Commit: da2d97142b9c76e5fb81df5f94c3d52ef46bf244
Parents: a3b3149
Author: Jonathan Ellis <jbel...@apache.org>
Authored: Thu Mar 13 13:13:48 2014 -0500
Committer: Jonathan Ellis <jbel...@apache.org>
Committed: Thu Mar 13 13:13:48 2014 -0500

----------------------------------------------------------------------
 CHANGES.txt                                               | 1 +
 src/java/org/apache/cassandra/streaming/StreamWriter.java | 8 ++++----
 2 files changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/da2d9714/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 2413b51..e208e21 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.7
+ * Fix leaking validator FH in StreamWriter (CASSANDRA-6832)
  * Fix saving triggers to schema (CASSANDRA-6789)
  * Fix trigger mutations when base mutation list is immutable (CASSANDRA-6790)
  * Fix accounting in FileCacheService to allow re-using RAR (CASSANDRA-6838)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/da2d9714/src/java/org/apache/cassandra/streaming/StreamWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/streaming/StreamWriter.java 
b/src/java/org/apache/cassandra/streaming/StreamWriter.java
index 04301ba..dbc7390 100644
--- a/src/java/org/apache/cassandra/streaming/StreamWriter.java
+++ b/src/java/org/apache/cassandra/streaming/StreamWriter.java
@@ -71,10 +71,9 @@ public class StreamWriter
     {
         long totalSize = totalSize();
         RandomAccessReader file = sstable.openDataReader();
-        ChecksumValidator validator = null;
-        if (new File(sstable.descriptor.filenameFor(Component.CRC)).exists())
-            validator = 
DataIntegrityMetadata.checksumValidator(sstable.descriptor);
-
+        ChecksumValidator validator = new 
File(sstable.descriptor.filenameFor(Component.CRC)).exists()
+                                    ? 
DataIntegrityMetadata.checksumValidator(sstable.descriptor)
+                                    : null;
         transferBuffer = validator == null ? new byte[DEFAULT_CHUNK_SIZE] : 
new byte[validator.chunkSize];
 
         // setting up data compression stream
@@ -114,6 +113,7 @@ public class StreamWriter
         {
             // no matter what happens close file
             FileUtils.closeQuietly(file);
+            FileUtils.closeQuietly(validator);
         }
 
         // release reference only when completed successfully

Reply via email to