Index: src/main/java/org/apache/hadoop/hbase/regionserver/Store.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/Store.java (revision 1180297) +++ src/main/java/org/apache/hadoop/hbase/regionserver/Store.java (working copy) @@ -1148,7 +1148,9 @@ // we have to use a do/while loop. ArrayList kvs = new ArrayList(); // Limit to "hbase.hstore.compaction.kv.max" (default 10) to avoid OOME - while (scanner.next(kvs,this.compactionKVMax)) { + boolean hasMore; + do { + hasMore = scanner.next(kvs,this.compactionKVMax); if (writer == null && !kvs.isEmpty()) { writer = createWriterInTmp(maxKeyCount, this.compactionCompression); @@ -1178,7 +1180,7 @@ } } kvs.clear(); - } + } while (hasMore); } finally { if (scanner != null) { scanner.close();