Skip to content

Commit

Permalink
Add a stub for java.lang.invoke.MethodHandleImpl
Browse files Browse the repository at this point in the history
OpenJ9 JDK8 and JDK11 currently use OpenJ9 MethodHandles.

Enabling jdk_bean in JDK8 and JDK11 triggers certain OpenJDK
MethodHandles code paths. However, OpenJ9 MethodHandles are in use
for JDK8 and JDK11, so OpenJDK MethodHandles paths shouldn't be
activated. To address this, a MethodHandleImpl stub was added,
used only with OpenJ9 MethodHandles, and not when OpenJDK
MethodHandles are enabled.

Related: eclipse-openj9#20531

Signed-off-by: Babneet Singh <[email protected]>
  • Loading branch information
babsingh committed Nov 12, 2024
1 parent 83533e1 commit 4eb2f21
Showing 1 changed file with 42 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*[INCLUDE-IF !OPENJDK_METHODHANDLES]*/
/*
* Copyright IBM Corp. and others 2024
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
* distribution and is available at https://www.eclipse.org/legal/epl-2.0/
* or the Apache License, Version 2.0 which accompanies this distribution and
* is available at https://www.apache.org/licenses/LICENSE-2.0.
*
* This Source Code may also be made available under the following
* Secondary Licenses when the conditions for such availability set
* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU
* General Public License, version 2 with the GNU Classpath
* Exception [1] and GNU General Public License, version 2 with the
* OpenJDK Assembly Exception [2].
*
* [1] https://www.gnu.org/software/classpath/license.html
* [2] https://openjdk.org/legal/assembly-exception.html
*
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0 OR GPL-2.0-only WITH OpenJDK-assembly-exception-1.0
*/
package java.lang.invoke;

abstract class MethodHandleImpl {
enum Intrinsic {
}

static MethodHandle bindCaller(MethodHandle mh, Class<?> cls) {
throw OpenJDKCompileStub.OpenJDKCompileStubThrowError();
}

/*[IF JAVA_SPEC_VERSION >= 11]*/
static MethodHandle varargsArray(int i) {
throw OpenJDKCompileStub.OpenJDKCompileStubThrowError();
}

static MethodHandle varargsArray(Class<?> cls, int i) {
throw OpenJDKCompileStub.OpenJDKCompileStubThrowError();
}
/*[ENDIF] JAVA_SPEC_VERSION >= 11 */
}

0 comments on commit 4eb2f21

Please sign in to comment.