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 2014/08/06 20:36:13 UTC

git commit: HBASE-11667 Comment ClientScanner logic for NSREs.

Repository: hbase
Updated Branches:
  refs/heads/0.94 e127626d3 -> c51e19afe


HBASE-11667 Comment ClientScanner logic for NSREs.


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

Branch: refs/heads/0.94
Commit: c51e19afec1925de7769c24e0dbd2bfcf90a184e
Parents: e127626
Author: Lars Hofhansl <la...@apache.org>
Authored: Wed Aug 6 11:36:01 2014 -0700
Committer: Lars Hofhansl <la...@apache.org>
Committed: Wed Aug 6 11:36:01 2014 -0700

----------------------------------------------------------------------
 .../java/org/apache/hadoop/hbase/client/ClientScanner.java    | 7 +++++++
 1 file changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/c51e19af/src/main/java/org/apache/hadoop/hbase/client/ClientScanner.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/hbase/client/ClientScanner.java b/src/main/java/org/apache/hadoop/hbase/client/ClientScanner.java
index be93d58..7e72d57 100644
--- a/src/main/java/org/apache/hadoop/hbase/client/ClientScanner.java
+++ b/src/main/java/org/apache/hadoop/hbase/client/ClientScanner.java
@@ -304,7 +304,14 @@ public class ClientScanner extends AbstractClientScanner {
             // Else, its signal from depths of ScannerCallable that we got an
             // NSRE on a next and that we need to reset the scanner.
             if (this.lastResult != null) {
+              // The region has moved. We need to open a brand new scanner at
+              // the new location.
+              // Reset the startRow to the row we've seen last so that the new
+              // scanner starts at the correct row. Otherwise we may see previously
+              // returned rows again.
+              // (ScannerCallable by now has "relocated" the correct region)
               this.scan.setStartRow(this.lastResult.getRow());
+
               // Skip first row returned.  We already let it out on previous
               // invocation.
               skipFirst = true;