Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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]>
- Loading branch information