cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Brown (JIRA)" <>
Subject [jira] [Created] (CASSANDRA-11216) Range.compareTo() violates the contract of Comparable
Date Tue, 23 Feb 2016 14:32:18 GMT
Jason Brown created CASSANDRA-11216:

             Summary: Range.compareTo() violates the contract of Comparable
                 Key: CASSANDRA-11216
             Project: Cassandra
          Issue Type: Bug
          Components: Core
            Reporter: Jason Brown
            Assignee: Jason Brown
            Priority: Minor

When running some quick-check style tests, I discovered that if both of the ranges being compared
wrap around, then the result of the comparison depends on which range is evaluated first.
For example, two ranges:

A = { -1, 2 }
B = { -2, 1 }

and then compare them together:
A.compareTo(B) == -1
B.compareTo(A) == -1

This is because the logic of the existing {{Range.compareTo()}} simply checks to see if the
{{this}} range wraps around, and returns -1. This bug does not appear to affect c* until 3.0,
and then only in one place ({{MerkleTrees.TokenRangeComparator#compare}}) that I could identify.

This message was sent by Atlassian JIRA

View raw message