diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/SVMHost.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/SVMHost.java index 9d841716122e..c9359e868aa5 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/SVMHost.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/SVMHost.java @@ -140,6 +140,7 @@ import jdk.graal.compiler.phases.common.BoxNodeIdentityPhase; import jdk.graal.compiler.phases.common.CanonicalizerPhase; import jdk.graal.compiler.virtual.phases.ea.PartialEscapePhase; +import jdk.internal.loader.NativeLibraries; import jdk.vm.ci.meta.DeoptimizationReason; import jdk.vm.ci.meta.JavaConstant; import jdk.vm.ci.meta.ResolvedJavaField; @@ -797,6 +798,8 @@ private void initializeExcludedFields() { excludedFields.add(ReflectionUtil.lookupField(VMThreadLocalInfo.class, "sizeSupplier")); /* This field cannot be written to (see documentation) */ excludedFields.add(ReflectionUtil.lookupField(Counter.Group.class, "enabled")); + /* This field can contain a reference to a Thread, which is not allowed in the heap */ + excludedFields.add(ReflectionUtil.lookupField(NativeLibraries.class, "nativeLibraryLockMap")); } @Override