Skip to content

Commit

Permalink
Consistent report of unknown properties between JVM and Native mode
Browse files Browse the repository at this point in the history
(cherry picked from commit 7159665)
  • Loading branch information
radcortez authored and gsmet committed Jan 28, 2025
1 parent db5dd0e commit f5bd7d3
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,10 @@ public final class RunTimeConfigurationGenerator {
static final MethodDescriptor CD_MISSING_VALUE = MethodDescriptor.ofMethod(ConfigDiagnostic.class, "missingValue",
void.class, String.class, NoSuchElementException.class);
static final MethodDescriptor CD_RESET_ERROR = MethodDescriptor.ofMethod(ConfigDiagnostic.class, "resetError", void.class);
static final MethodDescriptor CD_UNKNOWN_PROPERTIES = MethodDescriptor.ofMethod(ConfigDiagnostic.class, "unknownProperties",
static final MethodDescriptor CD_REPORT_UNKNOWN = MethodDescriptor.ofMethod(ConfigDiagnostic.class, "reportUnknown",
void.class, Set.class);
static final MethodDescriptor CD_UNKNOWN_PROPERTIES_RT = MethodDescriptor.ofMethod(ConfigDiagnostic.class,
"unknownPropertiesRuntime", void.class, Set.class);
static final MethodDescriptor CD_REPORT_UNKNOWN_RUNTIME = MethodDescriptor.ofMethod(ConfigDiagnostic.class,
"reportUnknownRuntime", void.class, Set.class);

static final MethodDescriptor CONVS_NEW_ARRAY_CONVERTER = MethodDescriptor.ofMethod(Converters.class,
"newArrayConverter", Converter.class, Converter.class, Class.class);
Expand Down Expand Up @@ -449,14 +449,14 @@ public void run() {

// generate sweep for clinit
configSweepLoop(siParserBody, clinit, clinitConfig, getRegisteredRoots(BUILD_AND_RUN_TIME_FIXED), Type.BUILD_TIME);
clinit.invokeStaticMethod(CD_UNKNOWN_PROPERTIES, clinit.readStaticField(C_UNKNOWN));
clinit.invokeStaticMethod(CD_REPORT_UNKNOWN, clinit.readStaticField(C_UNKNOWN));

if (liveReloadPossible) {
configSweepLoop(siParserBody, readConfig, runTimeConfig, getRegisteredRoots(RUN_TIME), Type.RUNTIME);
}
// generate sweep for run time
configSweepLoop(rtParserBody, readConfig, runTimeConfig, getRegisteredRoots(RUN_TIME), Type.RUNTIME);
readConfig.invokeStaticMethod(CD_UNKNOWN_PROPERTIES_RT, readConfig.readStaticField(C_UNKNOWN_RUNTIME));
readConfig.invokeStaticMethod(CD_REPORT_UNKNOWN_RUNTIME, readConfig.readStaticField(C_UNKNOWN_RUNTIME));

// generate ensure-initialized method
// the point of this method is simply to initialize the Config class
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,21 +142,14 @@ public static void unknownProperties(Set<String> properties) {
}
}

public static void unknownRunTime(String name) {
if (ImageMode.current() == ImageMode.NATIVE_RUN) {
// only warn at run time for native images, otherwise the user will get warned twice for every property
unknown(name);
public static void reportUnknown(Set<String> properties) {
if (ImageMode.current() == ImageMode.NATIVE_BUILD) {
unknownProperties(properties);
}
}

public static void unknownRunTime(NameIterator name) {
unknownRunTime(name.getName());
}

public static void unknownPropertiesRuntime(Set<String> properties) {
if (ImageMode.current() == ImageMode.NATIVE_RUN) {
unknownProperties(properties);
}
public static void reportUnknownRuntime(Set<String> properties) {
unknownProperties(properties);
}

/**
Expand Down

0 comments on commit f5bd7d3

Please sign in to comment.