You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2011/10/13 20:14:10 UTC

svn commit: r1183018 - in /hbase/branches/0.92: CHANGES.txt src/main/java/org/apache/hadoop/hbase/regionserver/Store.java src/main/java/org/apache/hadoop/hbase/util/HMerge.java

Author: larsh
Date: Thu Oct 13 18:14:10 2011
New Revision: 1183018

URL: http://svn.apache.org/viewvc?rev=1183018&view=rev
Log:
HBASE-4556 Fix all incorrect uses of InternalScanner.next(...)

Modified:
    hbase/branches/0.92/CHANGES.txt
    hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
    hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/util/HMerge.java

Modified: hbase/branches/0.92/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/CHANGES.txt?rev=1183018&r1=1183017&r2=1183018&view=diff
==============================================================================
--- hbase/branches/0.92/CHANGES.txt (original)
+++ hbase/branches/0.92/CHANGES.txt Thu Oct 13 18:14:10 2011
@@ -334,6 +334,7 @@ Release 0.92.0 - Unreleased
    HBASE-4555  TestShell seems passed, but actually errors seen in test
                output file (Mingjie Lai)
    HBASE-4582  Store.java cleanup (failing TestHeapSize and has warnings)
+   HBASE-4556  Fix all incorrect uses of InternalScanner.next(...) (Lars H)
 
   TESTS
    HBASE-4492  TestRollingRestart fails intermittently

Modified: hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java?rev=1183018&r1=1183017&r2=1183018&view=diff
==============================================================================
--- hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java (original)
+++ hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java Thu Oct 13 18:14:10 2011
@@ -1146,7 +1146,9 @@ public class Store implements HeapSize {
         // we have to use a do/while loop.
         ArrayList<KeyValue> kvs = new ArrayList<KeyValue>();
         // 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);
@@ -1176,7 +1178,7 @@ public class Store implements HeapSize {
             }
           }
           kvs.clear();
-        }
+        } while (hasMore);
       } finally {
         if (scanner != null) {
           scanner.close();

Modified: hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/util/HMerge.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/util/HMerge.java?rev=1183018&r1=1183017&r2=1183018&view=diff
==============================================================================
--- hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/util/HMerge.java (original)
+++ hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/util/HMerge.java Thu Oct 13 18:14:10 2011
@@ -19,6 +19,12 @@
  */
 package org.apache.hadoop.hbase.util;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.Random;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
@@ -44,12 +50,6 @@ import org.apache.hadoop.hbase.regionser
 import org.apache.hadoop.hbase.regionserver.InternalScanner;
 import org.apache.hadoop.hbase.regionserver.wal.HLog;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.NoSuchElementException;
-import java.util.Random;
-
 /**
  * A non-instantiable class that has a static method capable of compacting
  * a table by merging adjacent regions.
@@ -370,14 +370,16 @@ class HMerge {
 
       try {
         List<KeyValue> results = new ArrayList<KeyValue>();
-        while(rootScanner.next(results)) {
+        boolean hasMore;
+        do {
+          hasMore = rootScanner.next(results);
           for(KeyValue kv: results) {
             HRegionInfo info = Writables.getHRegionInfoOrNull(kv.getValue());
             if (info != null) {
               metaRegions.add(info);
             }
           }
-        }
+        } while (hasMore);
       } finally {
         rootScanner.close();
         try {