Compare fix
Change-Id: I56ad744ff9d99198136c97f62896c487285192ec
diff --git a/protocols/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BgpPrefixLSIdentifier.java b/protocols/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BgpPrefixLSIdentifier.java
index 22e6891..a9a0766 100644
--- a/protocols/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BgpPrefixLSIdentifier.java
+++ b/protocols/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BgpPrefixLSIdentifier.java
@@ -238,6 +238,7 @@
return 0;
}
int result = this.localNodeDescriptors.compareTo(((BgpPrefixLSIdentifier) o).localNodeDescriptors);
+ boolean tlvFound = false;
if (result != 0) {
return result;
} else {
@@ -249,20 +250,24 @@
} else {
return -1;
}
- }
+ }
ListIterator<BgpValueType> listIterator = prefixDescriptor.listIterator();
- ListIterator<BgpValueType> listIteratorOther = ((BgpPrefixLSIdentifier) o).prefixDescriptor.listIterator();
while (listIterator.hasNext()) {
- BgpValueType tlv = listIterator.next();
- if (prefixDescriptor.contains(tlv) && ((BgpPrefixLSIdentifier) o).prefixDescriptor.contains(tlv)) {
- int res = prefixDescriptor.get(prefixDescriptor.indexOf(tlv)).compareTo(
- ((BgpPrefixLSIdentifier) o).prefixDescriptor
- .get(((BgpPrefixLSIdentifier) o).prefixDescriptor.indexOf(tlv)));
- if (res != 0) {
- return res;
+ BgpValueType tlv1 = listIterator.next();
+ for (BgpValueType tlv : ((BgpPrefixLSIdentifier) o).prefixDescriptor) {
+ if (tlv.getType() == tlv1.getType()) {
+ result = prefixDescriptor.get(prefixDescriptor.indexOf(tlv1)).compareTo(
+ ((BgpPrefixLSIdentifier) o).prefixDescriptor
+ .get(((BgpPrefixLSIdentifier) o).prefixDescriptor.indexOf(tlv)));
+ if (result != 0) {
+ return result;
+ }
+ tlvFound = true;
+ break;
}
- } else {
+ }
+ if (!tlvFound) {
return 1;
}
}