Changing something that affects Equals()/GetHashCode() of an object while
that object is the key of a dictionary isn't allowed by the IDictionary
contract. What behavior should we expect?

/Oskar


2013/11/20 Roger Kratz <[email protected]>

> Hi
>
>
>
> I reported regression bug 3555 some time ago. This issue currently
> prevents releasing an Envers version targeting NH 4.
>
>
>
> I’m sitting trying to fixing the issue myself, but run into an issue
> whether old behavior is correct or not.
>
>
>
> What the issue is all about is…
>
>
>
> var key = new KeyEntity();
>
> var value = new ValueEntity();
>
> var entity = new MapEntity();
>
> entity.SomeMapProp[key] = value; (1)
>
>
>
> [open session]
>
>    [begin tran]
>
>       [save entity]
>
>    [commit tran]
>
>    [begin tran]
>
>        Key.SomeProperty = newvalue; (2)
>
>    [commit tran]
>
> [/close session]
>
>
>
> ….in other words; changing the key object of an entry in a map/dictionary.
>
>
>
> In current NH 4 code base, code above throws. I’ve fixed the problem
> locally but noticed that my “fix” got another result than NH 3. In NH 3
> code above resulted in _*two*_ entries in the map – both (1) and (2),
> while my local fix resulted in one entry (only 2). I personally think the
> behavior in NH 3 was wrong.
>
>
>
> I’ll be glad to fix this issue so a new Envers version could be released
> together with NH 4 alpha 2 but I need to double check with you first what
> the “correct” behavior is in this case. Any opinions?
>
>
>
> All the best,
>
> Roger
>
>
>
>
>
>
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nhibernate-development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"nhibernate-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to