Repository: hbase
Updated Branches:
  refs/heads/master 896457339 -> ff9c92e16


HBASE-14985 TimeRange constructors should set allTime when appropriate 
(Geoffrey Jacoby)


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

Branch: refs/heads/master
Commit: ff9c92e16831fe350904ac99f92619fb97ba2bef
Parents: 8964573
Author: tedyu <yuzhih...@gmail.com>
Authored: Mon Apr 11 16:59:45 2016 -0700
Committer: tedyu <yuzhih...@gmail.com>
Committed: Mon Apr 11 16:59:45 2016 -0700

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/io/TimeRange.java   | 12 +++++--
 .../regionserver/TestTimeRangeTracker.java      | 37 ++++++++++++++++++++
 2 files changed, 47 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/ff9c92e1/hbase-common/src/main/java/org/apache/hadoop/hbase/io/TimeRange.java
----------------------------------------------------------------------
diff --git 
a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/TimeRange.java 
b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/TimeRange.java
index a300c21..212ad45 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/TimeRange.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/TimeRange.java
@@ -36,8 +36,10 @@ import org.apache.hadoop.hbase.util.Bytes;
 @InterfaceAudience.Public
 @InterfaceStability.Stable
 public class TimeRange {
-  private long minStamp = 0L;
-  private long maxStamp = Long.MAX_VALUE;
+  private static final long MIN_TIME = 0L;
+  private static final long MAX_TIME = Long.MAX_VALUE;
+  private long minStamp = MIN_TIME;
+  private long maxStamp = MAX_TIME;
   private boolean allTime = false;
 
   /**
@@ -54,6 +56,9 @@ public class TimeRange {
    */
   public TimeRange(long minStamp) {
     this.minStamp = minStamp;
+    if (this.minStamp == MIN_TIME){
+      this.allTime = true;
+    }
   }
 
   /**
@@ -80,6 +85,9 @@ public class TimeRange {
     }
     this.minStamp = minStamp;
     this.maxStamp = maxStamp;
+    if (this.minStamp == MIN_TIME && this.maxStamp == MAX_TIME){
+      this.allTime = true;
+    }
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/ff9c92e1/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestTimeRangeTracker.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestTimeRangeTracker.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestTimeRangeTracker.java
index edec023..9d49e61 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestTimeRangeTracker.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestTimeRangeTracker.java
@@ -17,6 +17,8 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 import org.apache.hadoop.hbase.io.TimeRange;
@@ -25,6 +27,8 @@ import 
org.apache.hadoop.hbase.testclassification.RegionServerTests;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
+import java.io.IOException;
+
 @Category({RegionServerTests.class, SmallTests.class})
 public class TestTimeRangeTracker {
   @Test
@@ -81,6 +85,39 @@ public class TestTimeRangeTracker {
     assertTrue(trr.getMinimumTimestamp() == 0);
   }
 
+  @Test
+  public void testRangeConstruction() throws IOException {
+    TimeRange defaultRange = new TimeRange();
+    assertEquals(0L, defaultRange.getMin());
+    assertEquals(Long.MAX_VALUE, defaultRange.getMax());
+    assertTrue(defaultRange.isAllTime());
+
+    TimeRange oneArgRange = new TimeRange(0L);
+    assertEquals(0L, oneArgRange.getMin());
+    assertEquals(Long.MAX_VALUE, oneArgRange.getMax());
+    assertTrue(oneArgRange.isAllTime());
+
+    TimeRange oneArgRange2 = new TimeRange(1);
+    assertEquals(1, oneArgRange2.getMin());
+    assertEquals(Long.MAX_VALUE, oneArgRange2.getMax());
+    assertFalse(oneArgRange2.isAllTime());
+
+    TimeRange twoArgRange = new TimeRange(0L, Long.MAX_VALUE);
+    assertEquals(0L, twoArgRange.getMin());
+    assertEquals(Long.MAX_VALUE, twoArgRange.getMax());
+    assertTrue(twoArgRange.isAllTime());
+
+    TimeRange twoArgRange2 = new TimeRange(0L, Long.MAX_VALUE - 1);
+    assertEquals(0L, twoArgRange2.getMin());
+    assertEquals(Long.MAX_VALUE - 1, twoArgRange2.getMax());
+    assertFalse(twoArgRange2.isAllTime());
+
+    TimeRange twoArgRange3 = new TimeRange(1, Long.MAX_VALUE);
+    assertEquals(1, twoArgRange3.getMin());
+    assertEquals(Long.MAX_VALUE, twoArgRange3.getMax());
+    assertFalse(twoArgRange3.isAllTime());
+  }
+
   /**
    * Bit of code to test concurrent access on this class.
    * @param args

Reply via email to