diff --git a/jdk/src/java.base/share/classes/java/lang/invoke/MemberName.java b/jdk/src/java.base/share/classes/java/lang/invoke/MemberName.java index 1f60038e121..5f9580e17f4 100644 --- a/jdk/src/java.base/share/classes/java/lang/invoke/MemberName.java +++ b/jdk/src/java.base/share/classes/java/lang/invoke/MemberName.java @@ -694,8 +694,11 @@ import java.util.Objects; @Override public int hashCode() { - return Objects.hash(clazz, getReferenceKind(), name, getType()); + // Avoid autoboxing getReferenceKind(), since this is used early and will force + // early initialization of Byte$ByteCache + return Objects.hash(clazz, new Byte(getReferenceKind()), name, getType()); } + @Override public boolean equals(Object that) { return (that instanceof MemberName && this.equals((MemberName)that));