RFR: JDK-8274686 : java.util.UUID#hashCode() should use Long.hashCode()
Peter Levart
plevart at openjdk.java.net
Wed Oct 6 09:29:09 UTC 2021
On Mon, 4 Oct 2021 21:13:02 GMT, PROgrm_JARvis <github.com+7693005+JarvisCraft at openjdk.org> wrote:
> This is trivial fix of [JDK-8274686](https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8274686) which replaces manually-computed `int`-based `long` hash-code.
>
> Because `Long#hashCode(long)` uses other hashing function than the one currently used here:
>
> https://github.com/openjdk/jdk/blob/75d6688df9845ecb8f370b4cd2d5a36f13d3cdc0/src/java.base/share/classes/java/lang/Long.java#L1440-L1442
>
> the value of `hashCode()` will produce different result, however this does not seem to be a breaking change as `UUID#hashCode()` is not specified.
>
> ---
>
> Note: the comment to the bug states:
>
>> Moved to JDK for further discussions of the proposed enhancement.
>
> But as there seemed to be no corresponding discussion in core-libs-dev and the change looks trivial, I considered that it is appropriate to open a PR which (if needed) may be used for discussion (especially, considering the fact that its comments get mirrored to the ML).
Yes, the reverted change to BitSet.hashCode in https://github.com/openjdk/jdk/pull/4309 has the same property. It could be applied without any visible effect.
-------------
PR: https://git.openjdk.java.net/jdk/pull/5811
More information about the core-libs-dev
mailing list