Fixes #1044 - Using Java 8 Comparator for TableRange compareTo (#1045)


diff --git a/modules/core/src/main/java/org/apache/fluo/core/worker/finder/hash/TableRange.java b/modules/core/src/main/java/org/apache/fluo/core/worker/finder/hash/TableRange.java
index a3c70bb..ef4d530 100644
--- a/modules/core/src/main/java/org/apache/fluo/core/worker/finder/hash/TableRange.java
+++ b/modules/core/src/main/java/org/apache/fluo/core/worker/finder/hash/TableRange.java
@@ -17,6 +17,7 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
@@ -104,21 +105,11 @@
     return new Range(tper, false, ter, true);
   }
 
+  private static final Comparator<TableRange> TABLE_RANGE_COMPARATOR =
+      Comparator.comparing(TableRange::getEndRow, Comparator.nullsLast(Bytes::compareTo));
+
   @Override
-  public int compareTo(TableRange o) {
-    if (Objects.equals(getEndRow(), o.getEndRow())) {
-      // this will catch case of both null
-      return 0;
-    }
-
-    if (getEndRow() == null) {
-      return 1;
-    }
-
-    if (o.getEndRow() == null) {
-      return -1;
-    }
-
-    return getEndRow().compareTo(o.getEndRow());
+  public int compareTo(TableRange other) {
+    return TABLE_RANGE_COMPARATOR.compare(this, other);
   }
 }