[
https://issues.apache.org/jira/browse/HBASE-6907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ted Yu updated HBASE-6907:
--------------------------
Attachment: 6907-v5.txt
Patch v5 addresses Matt's comment.
The original intention of modifying Cell interface was that there might be
change(s) required in core.
Now that we see the changes are limited mostly to the tests, there is no need
for such modification.
> KeyValue equals and compareTo methods should match
> --------------------------------------------------
>
> Key: HBASE-6907
> URL: https://issues.apache.org/jira/browse/HBASE-6907
> Project: HBase
> Issue Type: Bug
> Components: util
> Reporter: Matt Corgan
> Fix For: 0.96.0
>
> Attachments: 6907-v1.txt, 6907-v2.txt, 6907-v3.txt, 6907-v4.txt,
> 6907-v5.txt
>
>
> KeyValue.KVComparator includes the memstoreTS when comparing, however the
> KeyValue.equals() method ignores the memstoreTS.
> The Comparator interface has always specified that comparator return 0 when
> equals would return true and vice versa. Obeying that rule has been sort of
> optional in the past, but Java 7 introduces a new default collection sorting
> algorithm called Tim Sort which relies on that behavior.
> http://bugs.sun.com/view_bug.do?bug_id=6804124
> Possible problem spots:
> * there's a Collections.sort(KeyValues) in
> RedundantKVGenerator.generateTestKeyValues(..)
> * TestColumnSeeking compares two collections of KeyValues using the
> containsAll method. It is intentionally ignoring memstoreTS, so will need an
> alternative method for comparing the two collections.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira