You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jason Brown (JIRA)" <ji...@apache.org> on 2016/02/23 15:32:18 UTC

[jira] [Created] (CASSANDRA-11216) Range.compareTo() violates the contract of Comparable

Jason Brown created CASSANDRA-11216:
---------------------------------------

             Summary: Range.compareTo() violates the contract of Comparable
                 Key: CASSANDRA-11216
                 URL: https://issues.apache.org/jira/browse/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
(v6.3.4#6332)