From 5547b9fff4b7986811383b2f374844537cfbe680 Mon Sep 17 00:00:00 2001 From: Vojin Jovanovic Date: Thu, 22 May 2025 09:01:55 +0200 Subject: [PATCH] Fix ignore list for Preserve --- .../src/com/oracle/svm/core/SubstrateOptions.java | 4 ++-- .../com/oracle/svm/hosted/image/PreserveOptionsSupport.java | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/SubstrateOptions.java b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/SubstrateOptions.java index 44042d9c692c..3c7bcd48486d 100644 --- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/SubstrateOptions.java +++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/SubstrateOptions.java @@ -1441,8 +1441,8 @@ public enum ReportingMode { public static final HostedOptionKey Preserve = new HostedOptionKey<>(AccumulatingLocatableMultiOptionValue.Strings.build()); @Option(help = "Ignore classes or packages (comma separated) from the ones included with '-H:Preserve'. This can be used to workaround potential issues related to '-H:Preserve'.", type = OptionType.Debug) // - public static final HostedOptionKey IgnorePreserveForClasses = new HostedOptionKey<>(AccumulatingLocatableMultiOptionValue.Strings.build()); - + public static final HostedOptionKey IgnorePreserveForClasses = new HostedOptionKey<>( + AccumulatingLocatableMultiOptionValue.Strings.buildWithCommaDelimiter()); @Option(help = "Force include include all public types and methods that can be reached using normal Java access rules.")// public static final HostedOptionKey UseBaseLayerInclusionPolicy = new HostedOptionKey<>(false); diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/image/PreserveOptionsSupport.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/image/PreserveOptionsSupport.java index 6795e1f14a64..6b2387c42881 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/image/PreserveOptionsSupport.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/image/PreserveOptionsSupport.java @@ -227,7 +227,9 @@ public static void registerPreservedClasses(NativeImageClassLoaderSupport classL }); for (String className : classLoaderSupport.getClassNamesToPreserve()) { - reflection.registerClassLookup(always, className); + if (!classesOrPackagesToIgnore.contains(className)) { + reflection.registerClassLookup(always, className); + } } } }