On Fri, 4 Aug 2023 22:00:41 GMT, Pavel Rappo <pra...@openjdk.org> wrote:
>> src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java >> line 523: >> >>> 521: if (crealm != null) result = 37 * result + crealm.hashCode(); >>> 522: if (cname != null) result = 37 * result + cname.hashCode(); >>> 523: if (sname != null) result = 37 * result + sname.hashCode(); >> >> Why changing the ordering? I was wondering if you'd change this to >> Objects.hash(...) with all the fields as arguments. > >> Why changing the ordering? > > The order was changed to be parallel with that of `equals`. > >> I was wondering if you'd change this to Objects.hash(...) with all the >> fields as arguments. > > Sure, we could use a convenience method, but because `eData` is an array, it > should be `Arrays.deepHashCode(..., eData, ...)` or this construct: > > Objects.hash(..., Arrays.hashCode(eData), ...) > > Bottom line: as long as we include all eData elements in the computation, we > should be fine. If we fail to do that, we'll violate the equals-hashCode > contract. Ok. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/14738#discussion_r1286406005