You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nicolas Spiegelberg (JIRA)" <ji...@apache.org> on 2011/01/17 07:04:44 UTC

[jira] Commented: (HBASE-3387) Pair does not deep check arrays for equality.

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