Repository: cassandra
Updated Branches:
  refs/heads/trunk 86c7785af -> 0603af90e


make scanner.close idempotent

Patch by tjake; reviewed by blerer for CASSANDRA-9531


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

Branch: refs/heads/trunk
Commit: 2a9fc0e887612725a51b3822a266c1b3d3fadcaf
Parents: 4c53dc3
Author: T Jake Luciani <j...@apache.org>
Authored: Tue Jun 2 11:41:51 2015 -0400
Committer: T Jake Luciani <j...@apache.org>
Committed: Wed Jun 3 10:20:59 2015 -0400

----------------------------------------------------------------------
 .../apache/cassandra/io/sstable/format/big/BigTableScanner.java | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2a9fc0e8/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java 
b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
index cea9cfa..d477152 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
@@ -19,6 +19,7 @@ package org.apache.cassandra.io.sstable.format.big;
 
 import java.io.IOException;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import com.google.common.collect.AbstractIterator;
 import com.google.common.collect.Ordering;
@@ -51,6 +52,7 @@ import static 
org.apache.cassandra.dht.AbstractBounds.minRight;
 
 public class BigTableScanner implements ISSTableScanner
 {
+    private AtomicBoolean isClosed = new AtomicBoolean(false);
     protected final RandomAccessReader dfile;
     protected final RandomAccessReader ifile;
     public final SSTableReader sstable;
@@ -193,7 +195,8 @@ public class BigTableScanner implements ISSTableScanner
 
     public void close() throws IOException
     {
-        FileUtils.close(dfile, ifile);
+        if (isClosed.compareAndSet(false, true))
+            FileUtils.close(dfile, ifile);
     }
 
     public long getLengthInBytes()

Reply via email to