diff --git a/common.json b/common.json index 079e32a05816..2f5d3ed42f34 100644 --- a/common.json +++ b/common.json @@ -8,7 +8,7 @@ "COMMENT.jdks": "When adding or removing JDKs keep in sync with JDKs in ci/common.jsonnet", "jdks": { - "galahad-jdk": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+22-2657", "platformspecific": true, "extrabundles": ["static-libs"]}, + "galahad-jdk": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+23-2715", "platformspecific": true, "extrabundles": ["static-libs"]}, "oraclejdk17": {"name": "jpg-jdk", "version": "17.0.7", "build_id": "jdk-17.0.7+8", "platformspecific": true, "extrabundles": ["static-libs"]}, "labsjdk-ce-17": {"name": "labsjdk", "version": "ce-17.0.7+4-jvmci-23.1-b02", "platformspecific": true }, diff --git a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/xml/Target_jdk_xml_internal_JdkCatalog.java b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/xml/Target_jdk_xml_internal_JdkXmlConfig_CatalogHolder.java similarity index 86% rename from substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/xml/Target_jdk_xml_internal_JdkCatalog.java rename to substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/xml/Target_jdk_xml_internal_JdkXmlConfig_CatalogHolder.java index eec7075c8d9d..d025f67ca037 100644 --- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/xml/Target_jdk_xml_internal_JdkCatalog.java +++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/xml/Target_jdk_xml_internal_JdkXmlConfig_CatalogHolder.java @@ -45,17 +45,11 @@ * Ideally, we would initialize all of {@code jdk.xml} at run time, but that is too intrusive at the * current point in time (GR-50683). */ -@TargetClass(className = "jdk.xml.internal.JdkCatalog", onlyWith = JDKLatest.class) -public final class Target_jdk_xml_internal_JdkCatalog { +@TargetClass(className = "jdk.xml.internal.JdkXmlConfig$CatalogHolder", onlyWith = JDKLatest.class) +public final class Target_jdk_xml_internal_JdkXmlConfig_CatalogHolder { @Alias // @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Custom, declClass = JdkCatalogSupplier.class, isFinal = true) // - public static Target_javax_xml_catalog_Catalog catalog; - - @Substitute - @SuppressWarnings("unused") - public static void init(String resolve) { - // initialized at build time - } + public static Target_javax_xml_catalog_Catalog JDKCATALOG; } @TargetClass(className = "javax.xml.catalog.Catalog", onlyWith = JDKLatest.class) @@ -76,8 +70,8 @@ final class Target_javax_xml_parsers_SAXParser { final class JdkCatalogSupplier implements FieldValueTransformer { /** - * Verifies that {@link Target_jdk_xml_internal_JdkCatalog#catalog} is non-null. The - * initialization is triggered in + * Verifies that {@link Target_jdk_xml_internal_JdkXmlConfig_CatalogHolder#JDKCATALOG} is + * non-null. The initialization is triggered in * {@code com.oracle.svm.hosted.xml.JavaxXmlClassAndResourcesLoaderFeature#initializeJdkCatalog()} */ @Override diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/xml/JavaxXmlClassAndResourcesLoaderFeature.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/xml/JavaxXmlClassAndResourcesLoaderFeature.java index 52e8deeda0b5..ee2718390288 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/xml/JavaxXmlClassAndResourcesLoaderFeature.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/xml/JavaxXmlClassAndResourcesLoaderFeature.java @@ -76,7 +76,7 @@ public void beforeAnalysis(BeforeAnalysisAccess access) { } /** - * Initialize the {@code JdkCatalog#catalog} field. We do this eagerly (instead of e.g. in a + * Initialize the {@code CatalogHolder#catalog} field. We do this eagerly (instead of e.g. in a * {@link FieldValueTransformer}) to work around a race condition in * XMLSecurityManager#prepareCatalog (JDK-8350189). */ @@ -85,10 +85,10 @@ private static void initializeJdkCatalog() { return; } if (ModuleLayer.boot().findModule("java.xml").isPresent()) { - // Ensure the JdkCatalog#catalog field is initialized. - Class xmlSecurityManager = ReflectionUtil.lookupClass(false, "jdk.xml.internal.XMLSecurityManager"); + // Ensure the JdkXmlConfig$CatalogHolder#catalog field is initialized. + Class xmlSecurityManager = ReflectionUtil.lookupClass(false, "jdk.xml.internal.JdkXmlConfig$CatalogHolder"); // The constructor call prepareCatalog which will call JdkCatalog#init. - ReflectionUtil.newInstance(xmlSecurityManager); + ReflectionUtil.readStaticField(xmlSecurityManager, "JDKCATALOG"); } } }