It will detect them in the merge phase when it's merging two runs together. Typically it just means that your comparison function is not following the rules, things like both a < b
and b < a
being true at the same time, or getting true values from all of a > b
, b > c
and c > a
.
I don't know of any static analysis tool that would help here but I'm not sure it would even be needed.
Your best bet is to just eyeball the comparison function and ensure it returns the correct value for various data sets. Actually finding the comparison functions should be relatively simple by just searching all files for Comparator
.