diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueHeap.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueHeap.java index f2b453a..ff76d20 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueHeap.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueHeap.java @@ -20,11 +20,10 @@ package org.apache.hadoop.hbase.regionserver; import java.io.IOException; +import java.util.ArrayList; import java.util.Comparator; -import java.util.HashSet; import java.util.List; import java.util.PriorityQueue; -import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -53,7 +52,7 @@ public class KeyValueHeap extends NonReversedNonLazyKeyValueScanner // Holds the scanners when a ever a eager close() happens. All such eagerly closed // scans are collected and when the final scanner.close() happens will perform the // actual close. - protected Set scannersForDelayedClose = new HashSet(); + protected List scannersForDelayedClose = null; /** * The current sub-scanner, i.e. the one that contains the next key/value @@ -89,6 +88,8 @@ public class KeyValueHeap extends NonReversedNonLazyKeyValueScanner KeyValueHeap(List scanners, KVScannerComparator comparator) throws IOException { this.comparator = comparator; + this.scannersForDelayedClose = new ArrayList( + scanners.size()); if (!scanners.isEmpty()) { this.heap = new PriorityQueue(scanners.size(), this.comparator); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java index cb40909..7e08eca 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java @@ -24,10 +24,8 @@ import com.google.common.annotations.VisibleForTesting; import java.io.IOException; import java.io.InterruptedIOException; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; import java.util.NavigableSet; -import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.locks.ReentrantLock; @@ -94,7 +92,7 @@ public class StoreScanner extends NonReversedNonLazyKeyValueScanner // Collects all the KVHeap that are eagerly getting closed during the // course of a scan - protected Set heapsForDelayedClose = new HashSet(); + protected List heapsForDelayedClose = new ArrayList(); /** * The number of KVs seen by the scanner. Includes explicitly skipped KVs, but not