Author: tedyu Date: Wed Dec 7 21:05:59 2011 New Revision: 1211632 URL: http://svn.apache.org/viewvc?rev=1211632&view=rev Log: HBASE-4927 Addendum fixes case where start key is empty and end key is empty
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java?rev=1211632&r1=1211631&r2=1211632&view=diff ============================================================================== --- hbase/trunk/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java (original) +++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java Wed Dec 7 21:05:59 2011 @@ -777,8 +777,14 @@ implements WritableComparable<HRegionInf result = Bytes.compareTo(this.endKey, o.endKey); if (result != 0) { - if (this.getEndKey().length == 0) return 1; // this is last region - if (o.getEndKey().length == 0) return -1; // o is the last region + if (this.getStartKey().length != 0 + && this.getEndKey().length == 0) { + return 1; // this is last region + } + if (o.getStartKey().length != 0 + && o.getEndKey().length == 0) { + return -1; // o is the last region + } return result; } if (this.offLine == o.offLine) Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java?rev=1211632&r1=1211631&r2=1211632&view=diff ============================================================================== --- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java (original) +++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java Wed Dec 7 21:05:59 2011 @@ -158,8 +158,14 @@ class CatalogJanitor extends Chore { // Compare end keys. result = Bytes.compareTo(left.getEndKey(), right.getEndKey()); if (result != 0) { - if (left.getEndKey().length == 0) return -1; // left is last region - if (right.getEndKey().length == 0) return 1; // right is the last region + if (left.getStartKey().length != 0 + && left.getEndKey().length == 0) { + return -1; // left is last region + } + if (right.getStartKey().length != 0 + && right.getEndKey().length == 0) { + return 1; // right is the last region + } return -result; // Flip the result so parent comes first. } return result;