[
https://issues.apache.org/jira/browse/HBASE-3387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12982489#action_12982489
]
Nicolas Spiegelberg commented on HBASE-3387:
--------------------------------------------
This JIRA patch is a big consistency problem and should be reverted!
http://www.ibm.com/developerworks/java/library/j-jtp05273.html
Basically, java containers assume a.equals(b) == false if a.hashcode() !=
b.hashcode(). Furthermore,
byte[] a = {0,1,2}, b = {0,1,2};
false == a.equals(b)
true == Pair.newPair(a,a).equals(Pair.newPair(b,b))
Was this patch introduced to fix any bug in the existing subsystem?
> Pair does not deep check arrays for equality.
> ----------------------------------------------
>
> Key: HBASE-3387
> URL: https://issues.apache.org/jira/browse/HBASE-3387
> Project: HBase
> Issue Type: Bug
> Components: util
> Affects Versions: 0.90.1
> Environment: Any (discovered in Ubuntu 10.10 using TRUNK).
> Reporter: Jesse Yates
> Priority: Minor
> Fix For: 0.90.1, 0.92.0
>
> Attachments: HBASE-3387.patch
>
> Original Estimate: 0h
> Remaining Estimate: 0h
>
> Pair does not deep check arrays for equality. It merely does x.equals(y) for
> the sent Object. However, with any type of array this is merely going to
> compare the array pointers, rather than the underlying data structure.
> It requires a rewriting of the private equals method in Pair to check for
> elements being an array, then checking the underlying elements.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.