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 unrelfect with OpenJDK MHs in JDK8
This patch addresses #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
#14985. Though not-spec compliant, the test expects
an AbstractMethodError to be thrown to conform to the RI behaviour in
JDK8. For OpenJ9 MHs, MethodHandles.unreflect identifies private
interface methods and installs an AbstractMethodError-thrower MH.
This patch sets up a MethodHandleResolver method that installs the
AbstractMethodError-thrower MH when called from OpenJDK MH unreflect
implementation.
Issues: #14985
Signed-off-by: Nathan Henderson <[email protected]>
0 commit comments