fix virtual network comparator
Change-Id: Ifb2aba3c302a77c06283649bed90b2db11a04732
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 b5d843e..c03c99b 100644
--- a/core/common/src/main/java/org/onosproject/utils/Comparators.java
+++ b/core/common/src/main/java/org/onosproject/utils/Comparators.java
@@ -118,7 +118,10 @@
(t1, t2) -> t1.id().compareTo(t2.id());
public static final Comparator<VirtualNetwork> VIRTUAL_NETWORK_COMPARATOR =
- (v1, v2) -> v1.tenantId().toString().compareTo(v2.tenantId().toString());
+ (v1, v2) -> {
+ int compareId = v1.tenantId().toString().compareTo(v2.tenantId().toString());
+ return (compareId != 0) ? compareId : Long.signum(v1.id().id() - v2.id().id());
+ };
public static final Comparator<VirtualDevice> VIRTUAL_DEVICE_COMPARATOR =
(v1, v2) -> v1.id().toString().compareTo(v2.id().toString());
diff --git a/core/common/src/test/java/org/onosproject/utils/ComparatorsTest.java b/core/common/src/test/java/org/onosproject/utils/ComparatorsTest.java
index f4b4dc2..8562d7e 100644
--- a/core/common/src/test/java/org/onosproject/utils/ComparatorsTest.java
+++ b/core/common/src/test/java/org/onosproject/utils/ComparatorsTest.java
@@ -338,7 +338,7 @@
public void testVirtualNetworkComparator() {
assertNotEquals(0, VIRTUAL_NETWORK_COMPARATOR.compare(network(10, "tenantID"), network(10, "tenantID1")));
assertNotEquals(0, VIRTUAL_NETWORK_COMPARATOR.compare(network(10, "tenantID"), network(15, "tenantID1")));
- assertEquals(0, VIRTUAL_NETWORK_COMPARATOR.compare(network(15, "tenantID1"), network(10, "tenantID1")));
+ assertNotEquals(0, VIRTUAL_NETWORK_COMPARATOR.compare(network(15, "tenantID1"), network(10, "tenantID1")));
assertNotEquals(0, VIRTUAL_NETWORK_COMPARATOR.compare(network(15, "tenantID"), network(10, "tenantID1")));
}