[10] RFR (S): 8188145: MethodHandle resolution should follow JVMS sequence of lookup by name & type before type descriptor resolution

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Dec 19 17:56:08 UTC 2017


Seems fine.

Thanks,
Vladimir

On 12/19/17 7:37 AM, Vladimir Ivanov wrote:
> http://cr.openjdk.java.net/~vlivanov/8188145/webrev.00
> https://bugs.openjdk.java.net/browse/JDK-8188145
> 
> When resolving MethodHandle constants JVM eagerly resolves type 
> descriptor before doing upcall into JDK which performs method/field 
> resolution later (using MethodHandleNatives.resolve on symbolic 
> MemberName).
> 
> The problem is that according to JVMS, member resolution (and all 
> exceptions it throws) should precede type descriptor resolution.
> 
> Proposed fix does member & type descriptor resolution from JVM first and 
> then passes symbolic info into JDK (MHN.linkMethodHandleConstant).
> 
> The fix is conservative, since JDK repeats method/field resolution on a 
> freshly created MemberName from symbolic info. But considering there are 
> additional security-sensitive checks on JDK side, I decided to leave all 
> optimizations for future enhancements.
> 
> Testing: hs-precheckin-comp, hs-tier1, hs-tier2
> 
> Best regards,
> Vladimir Ivanov


More information about the hotspot-runtime-dev mailing list