You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Match RI behaviour for MethodHandles.unrelfect with OpenJDK MHs
This patch addresses eclipse-openj9/openj9#14985.
For MethodHandles to private interface methods, the RI erroneously
initializes the MethodHandle to have an InvokeInterface reference
kind, leading to an invoke-time AbstractMethodError throw.
As per the spec, OpenJ9 initializes MethodHandles to private interface
methods to have an InvokeSpecial reference kind which does not throw
the error.
This distinction causes a test failure for a test reported in
eclipse-openj9/openj9#14985. Though not-spec compliant, the test expects
an AbstractMethodError to be thrown to conform to the RI behaviour. For
OpenJ9 MHs, MethodHandles.unreflect identifies private interface methods
and installs an AbstractMethodError-thrower MH. This patch sets up a
similar mechanism for OpenJDK MHs by calling a MethodHandleResolver
method that installs the AbstractMethodError-thrower MH.
Issues: eclipse-openj9/openj9#14985
Signed-off-by: Nathan Henderson <[email protected]>
0 commit comments