[MNG-8178] Fall back to system properties for missing profile activation context properties (#1609)

A call to context.getSystemProperties() may yield an empty map, or
one missing the desired key, which makes a subsequent call of
toLowerCase fail with a NullPointerException.

Fall-back to using system properties with the Os.OS_NAME and 
similar values instead.

---------

Co-authored-by: Christian Kohlschütter <christian@kohlschutter.com>
This commit is contained in:
Guillaume Nodet 2024-07-11 07:24:58 +02:00 committed by GitHub
parent d35864e348
commit f2a0865c7a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 9 additions and 3 deletions

View File

@ -57,9 +57,15 @@ public class OperatingSystemProfileActivator implements ProfileActivator {
boolean active = ensureAtLeastOneNonNull(os);
String actualOsName = context.getSystemProperties().get("os.name").toLowerCase(Locale.ENGLISH);
String actualOsArch = context.getSystemProperties().get("os.arch").toLowerCase(Locale.ENGLISH);
String actualOsVersion = context.getSystemProperties().get("os.version").toLowerCase(Locale.ENGLISH);
String actualOsName = context.getSystemProperties()
.getOrDefault("os.name", Os.OS_NAME)
.toLowerCase(Locale.ENGLISH);
String actualOsArch = context.getSystemProperties()
.getOrDefault("os.arch", Os.OS_ARCH)
.toLowerCase(Locale.ENGLISH);
String actualOsVersion = context.getSystemProperties()
.getOrDefault("os.version", Os.OS_VERSION)
.toLowerCase(Locale.ENGLISH);
if (active && os.getFamily() != null) {
active = determineFamilyMatch(os.getFamily(), actualOsName);