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);
}
}