[ 
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.

Reply via email to