On Fri, Feb 10, 2012 at 12:00 PM, Ard Schrijvers
<[email protected]> wrote:
> On Fri, Feb 10, 2012 at 11:41 AM, Stefan Guggisberg
> <[email protected]> wrote:
>> On Thu, Feb 9, 2012 at 11:45 PM, Michael Dürig <[email protected]> wrote:
>>>
>>> Hi,
>>>
>>> I stumbled upon this by chance: The equals method for the classes
>>> ChildNodeEntriesMap and ChildNodeEntry is not symmetric.
>>
>> hmm, i am pretty sure they're symmetric, i.e.: a.equals(b) == b.equals(a)
>
> They look symmetric to me as well. Unless you refer to the Bucket innerclass
>
> ChildNodeEntriesMap#Bucket : This one has an invalid equals method

-> ChildNodeEntriesTree#Bucket

> breaking symmetry : Using super.equals in an equals implementation
> almost always breaks symmetry

good catch!

thanks
stefan

>
> Regards Ard
>
>>
>> or are you referring to the missing hashCode() override?
>> i admit that i've been lazy since those internal objects are not
>> intended to be used as keys for hash tables and sorts.
>>
>> but you're probably right, it doesn't hurt to implement them :)
>>
>> cheers
>> stefan
>>
>>> This will most
>>> certainly lead to subtle bugs later on.
>>>
>>> Michael
>
>
>
> --
> Amsterdam - Oosteinde 11, 1017 WT Amsterdam
> Boston - 1 Broadway, Cambridge, MA 02142
>
> US +1 877 414 4776 (toll free)
> Europe +31(0)20 522 4466
> www.onehippo.com

Reply via email to