From 8e73a2915df029bb1f060c665510fedbfb93a09f Mon Sep 17 00:00:00 2001 From: Claes Redestad Date: Mon, 9 Nov 2015 17:14:05 +0100 Subject: [PATCH] 8141677: Improve java.lang.invoke.MemberName hashCode implementation Reviewed-by: vlivanov, psandoz, shade --- .../java.base/share/classes/java/lang/invoke/MemberName.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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));