You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Mike Adamson (JIRA)" <ji...@apache.org> on 2015/05/14 14:41:00 UTC

[jira] [Created] (CASSANDRA-9381) AbstractColumnFamilyInputFormat is incorrectly interpreting token values when building ColumnFamilySplit

Mike Adamson created CASSANDRA-9381:
---------------------------------------

             Summary: AbstractColumnFamilyInputFormat is incorrectly interpreting token values when building ColumnFamilySplit
                 Key: CASSANDRA-9381
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9381
             Project: Cassandra
          Issue Type: Bug
          Components: Hadoop
            Reporter: Mike Adamson
             Fix For: 2.2 beta 1


The SplitCallable.call method in AbstractColumnFamilyInputFormat has the following code for building ColumnFamilySplits:
{noformat}
            for (TokenRange subSplit : subSplits.keySet())
            {
                List<TokenRange> ranges = subSplit.unwrap();
                for (TokenRange subrange : ranges)
                {
                    ColumnFamilySplit split =
                            new ColumnFamilySplit(
                                    subrange.getStart().toString().substring(2),
                                    subrange.getEnd().toString().substring(2),
                                    subSplits.get(subSplit),
                                    endpoints);

                    logger.debug("adding {}", split);
                    splits.add(split);
                }
            }
{noformat}
The subrange.getStart().toString().substring(2) works for the OrderPreservingPartitioner because the toString for the OPPToken in the java driver returns a hex value preceded by 0x. It doesn't work for the Murmur3Partitioner because the toString for the M3PToken returns Long.toString.

As a result the tokens lose their first 2 digits.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)