jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ard Schrijvers <a.schrijv...@onehippo.com>
Subject Re: [jr3 Microkernel] equals() not symmetric
Date Fri, 10 Feb 2012 11:00:29 GMT
On Fri, Feb 10, 2012 at 11:41 AM, Stefan Guggisberg
<stefan.guggisberg@gmail.com> wrote:
> On Thu, Feb 9, 2012 at 11:45 PM, Michael Dürig <mduerig@apache.org> 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
breaking symmetry : Using super.equals in an equals implementation
almost always breaks symmetry

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

Mime
View raw message