Hello Claes,
On 19/10/21 7:07 pm, Claes Redestad wrote:
On 2021-10-19 14:31, Jaikiran Pai wrote:
The other option I experimented with was to make
ModuleDescriptor#hashCode() generate the same hashcode across
multiple JVM runs. Although I do have a "working" version of that
change, I decided not to spend too much time on it because the
java.lang.Object#hashCode() contract itself clearly states that this
value isn't expected to be same across multiple JVM runs. So whatever
I do here is going to be brittle.
I'm assuming the cause for ModuleDescriptor#hashCode being is due to
the various enums not having an explicitly defined hashCode?
You are right. That was what was causing the change in values. I just
sent a separate reply in this thread with additional details.
I think this should be fixed.
Okay, I'll pursue this path then.
Either way you're going to be brittle since the patch to emit a 0 is
relying on the ModuleDescriptor#hashCode implementation disallowing 0
as a hash value (a 0 will force a recalculation). While it'll only
happen at most once per module these relatively expensive calculations
are something we want to avoid on startup if we can do so for free.
Understood. Thank you for these inputs.
-Jaikiran