From b64edebadc6e26abaaf670ef6eec18cf38aea1d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deleuze?= Date: Fri, 1 Jul 2022 16:44:05 +0200 Subject: [PATCH] Improve ConstantFieldFeature compatibility This commit makes ConstantFieldFeature compatible with GraalVM 22.2 while retaining GraalVM 22.1 compatibility. See gh-28624 --- .../springframework/aot/graalvm/ConstantFieldFeature.java | 4 ++-- .../aot/graalvm/ConstantReadableJavaField.java | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/spring-core/graalvm/src/main/java/org/springframework/aot/graalvm/ConstantFieldFeature.java b/spring-core/graalvm/src/main/java/org/springframework/aot/graalvm/ConstantFieldFeature.java index 06d67ee9917..2201503f4a4 100644 --- a/spring-core/graalvm/src/main/java/org/springframework/aot/graalvm/ConstantFieldFeature.java +++ b/spring-core/graalvm/src/main/java/org/springframework/aot/graalvm/ConstantFieldFeature.java @@ -41,9 +41,9 @@ class ConstantFieldFeature implements Feature { DebugContext debug = access.getDebugContext(); try (DebugContext.Scope scope = debug.scope("ConstantFieldFeature.duringSetup")) { debug.log("Installing constant field substitution processor : " + scope); - ClassLoader applicationClassLoader = access.getApplicationClassLoader(); + ClassLoader classLoader = ConstantFieldFeature.class.getClassLoader(); ConstantFieldSubstitutionProcessor substitutionProcessor = - new ConstantFieldSubstitutionProcessor(debug, applicationClassLoader); + new ConstantFieldSubstitutionProcessor(debug, classLoader); access.registerSubstitutionProcessor(substitutionProcessor); } } diff --git a/spring-core/graalvm/src/main/java/org/springframework/aot/graalvm/ConstantReadableJavaField.java b/spring-core/graalvm/src/main/java/org/springframework/aot/graalvm/ConstantReadableJavaField.java index 6ee401d6a39..b2a20f53dd9 100644 --- a/spring-core/graalvm/src/main/java/org/springframework/aot/graalvm/ConstantReadableJavaField.java +++ b/spring-core/graalvm/src/main/java/org/springframework/aot/graalvm/ConstantReadableJavaField.java @@ -18,6 +18,7 @@ package org.springframework.aot.graalvm; import java.lang.annotation.Annotation; +import com.oracle.graal.pointsto.infrastructure.WrappedElement; import com.oracle.svm.core.meta.ReadableJavaField; import jdk.vm.ci.meta.JavaConstant; import jdk.vm.ci.meta.JavaType; @@ -31,7 +32,7 @@ import jdk.vm.ci.meta.ResolvedJavaType; * @author Phillip Webb * @since 6.0 */ -class ConstantReadableJavaField implements ReadableJavaField { +class ConstantReadableJavaField implements ReadableJavaField, WrappedElement { private final ResolvedJavaField original; @@ -109,4 +110,8 @@ class ConstantReadableJavaField implements ReadableJavaField { return true; } + @Override + public Object getWrapped() { + return this.original; + } }