Implement compareTo for TableId to avoid IllegalArgumentException
java.lang.IllegalArgumentException: Comparison method violates its general contract!
Change-Id: I4033e9a6743f134583eab936de2b960d76274919
diff --git a/core/common/src/main/java/org/onosproject/utils/Comparators.java b/core/common/src/main/java/org/onosproject/utils/Comparators.java
index b509012..20a4497 100644
--- a/core/common/src/main/java/org/onosproject/utils/Comparators.java
+++ b/core/common/src/main/java/org/onosproject/utils/Comparators.java
@@ -62,14 +62,14 @@
public static final Comparator<FlowRule> FLOW_RULE_COMPARATOR =
(f1, f2) -> {
// Compare table IDs in ascending order
- int tableCompare = f1.tableId() - f2.tableId();
+ int tableCompare = f1.table().compareTo(f2.table());
if (tableCompare != 0) {
return tableCompare;
}
// Compare priorities in descending order
int priorityCompare = f2.priority() - f1.priority();
return (priorityCompare == 0)
- ? Long.valueOf(f1.id().value()).compareTo(f2.id().value())
+ ? Long.compare(f1.id().value(), f2.id().value())
: priorityCompare;
};