This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git


The following commit(s) were added to refs/heads/master by this push:
     new f2a0865c7a [MNG-8178] Fall back to system properties for missing 
profile activation context properties (#1609)
f2a0865c7a is described below

commit f2a0865c7a66d44e13c88c9ef9146cfdf7024ac0
Author: Guillaume Nodet <gno...@gmail.com>
AuthorDate: Thu Jul 11 07:24:58 2024 +0200

    [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 <christ...@kohlschutter.com>
---
 .../profile/activation/OperatingSystemProfileActivator.java  | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git 
a/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/OperatingSystemProfileActivator.java
 
b/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/OperatingSystemProfileActivator.java
index 2553735cb4..e9d08aaf92 100644
--- 
a/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/OperatingSystemProfileActivator.java
+++ 
b/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/OperatingSystemProfileActivator.java
@@ -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);

Reply via email to