Skip to content

Commit a7c9118

Browse files
committed
removed use of reflection to access CompilerThreadCanCallJavaScope
1 parent 6ed285b commit a7c9118

File tree

2 files changed

+6
-45
lines changed

2 files changed

+6
-45
lines changed

compiler/mx.compiler/suite.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,10 @@
486486
"annotationProcessors" : [
487487
"GRAAL_PROCESSOR",
488488
],
489+
490+
# Direct reference to jdk.vm.ci.hotspot.CompilerThreadCanCallJavaScope
491+
# causing spotbugs analysis to fail with "missing class" error.
492+
"spotbugs": "false",
489493
},
490494

491495
"jdk.graal.compiler.libgraal.loader" : {

compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/LibGraalSupportImpl.java

Lines changed: 2 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,8 @@
2424
*/
2525
package jdk.graal.compiler.libgraal;
2626

27-
import java.io.Closeable;
2827
import java.io.IOException;
2928
import java.io.PrintStream;
30-
import java.lang.invoke.MethodHandle;
31-
import java.lang.invoke.MethodHandles;
32-
import java.lang.invoke.MethodType;
3329
import java.util.Comparator;
3430
import java.util.List;
3531
import java.util.Map;
@@ -57,6 +53,7 @@
5753
import jdk.graal.compiler.libgraal.truffle.HSTruffleCompilerRuntime;
5854
import jdk.graal.compiler.options.OptionValues;
5955
import jdk.graal.compiler.word.Word;
56+
import jdk.vm.ci.hotspot.CompilerThreadCanCallJavaScope;
6057
import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
6158
import jdk.vm.ci.hotspot.HotSpotVMConfigAccess;
6259
import jdk.vm.ci.hotspot.HotSpotVMConfigStore;
@@ -229,7 +226,7 @@ public void initialize() {
229226
@Override
230227
@SuppressWarnings("try")
231228
public void shutdown(String callbackClassName, String callbackMethodName) {
232-
try (CanCallJavaScope ignore = CanCallJavaScope.open()) {
229+
try (CompilerThreadCanCallJavaScope ignore = new CompilerThreadCanCallJavaScope(true)) {
233230
if (callbackClassName != null) {
234231
JNI.JNIEnv env = Word.unsigned(getJNIEnv());
235232
JNI.JClass cbClass = JNIUtil.findClass(env, JNIUtil.getSystemClassLoader(env),
@@ -247,46 +244,6 @@ public void shutdown(String callbackClassName, String callbackMethodName) {
247244

248245
}
249246

250-
private static final class CanCallJavaScope implements Closeable {
251-
252-
private static final MethodHandle CAN_CALL_JAVA_SCOPE = findCompilerThreadCanCallJavaScopeConstructor();
253-
254-
private static MethodHandle findCompilerThreadCanCallJavaScopeConstructor() {
255-
try {
256-
return MethodHandles.lookup().findConstructor(Class.forName("jdk.vm.ci.hotspot.CompilerThreadCanCallJavaScope"), MethodType.methodType(void.class, boolean.class));
257-
} catch (ReflectiveOperationException e) {
258-
throw new InternalError(e);
259-
}
260-
}
261-
262-
private final AutoCloseable impl;
263-
264-
private CanCallJavaScope() {
265-
try {
266-
impl = (AutoCloseable) CAN_CALL_JAVA_SCOPE.invoke(true);
267-
} catch (Error | RuntimeException e) {
268-
throw e;
269-
} catch (Throwable throwable) {
270-
throw new InternalError(throwable);
271-
}
272-
}
273-
274-
@Override
275-
public void close() {
276-
try {
277-
impl.close();
278-
} catch (RuntimeException e) {
279-
throw e;
280-
} catch (Exception e) {
281-
throw new AssertionError(e);
282-
}
283-
}
284-
285-
static CanCallJavaScope open() {
286-
return CAN_CALL_JAVA_SCOPE != null ? new CanCallJavaScope() : null;
287-
}
288-
}
289-
290247
@Override
291248
public void notifyLowMemoryPoint(boolean suggestFullGC) {
292249
LibGraalRuntime.notifyLowMemoryPoint(suggestFullGC);

0 commit comments

Comments
 (0)