From fd98d5941fed9ace34e472397fd024fe7ef9201d Mon Sep 17 00:00:00 2001 From: David Walluck Date: Wed, 2 Apr 2025 11:35:15 -0400 Subject: [PATCH 1/2] fix: don't allow qualifiers to contain nullable values This fixes the warning "Assigning a collection of nullable elements into a collection of non-null elements" which was a difference between what `PurlParameters::getQualifiers` returns and what `PackageURL::new` expects. So far, we don't have an example of qualifiers with `null` elements, but we can just return `"null"` instead which should have the same effect when comparing values. Simplify the creation of the qualifiers map from the `JSONObject` by using `Collectors::toMap`. --- src/test/java/com/github/packageurl/PurlParameters.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/github/packageurl/PurlParameters.java b/src/test/java/com/github/packageurl/PurlParameters.java index e9ea3aa..d033587 100644 --- a/src/test/java/com/github/packageurl/PurlParameters.java +++ b/src/test/java/com/github/packageurl/PurlParameters.java @@ -26,9 +26,9 @@ import java.io.IOException; import java.io.InputStream; import java.util.Collections; -import java.util.HashMap; import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Stream; import org.json.JSONArray; @@ -98,10 +98,7 @@ private PurlParameters( this.version = version; if (qualifiers != null) { this.qualifiers = qualifiers.toMap().entrySet().stream() - .collect( - HashMap::new, - (m, e) -> m.put(e.getKey(), Objects.toString(e.getValue(), null)), - HashMap::putAll); + .collect(Collectors.toMap(Map.Entry::getKey, entry -> Objects.toString(entry.getValue()))); } else { this.qualifiers = Collections.emptyMap(); } @@ -124,7 +121,7 @@ private PurlParameters( return version; } - public Map getQualifiers() { + public Map getQualifiers() { return Collections.unmodifiableMap(qualifiers); } From ebeeb3315138a8c9b85433fbbd3d07fbe609d09c Mon Sep 17 00:00:00 2001 From: David Walluck Date: Thu, 3 Apr 2025 08:07:58 -0400 Subject: [PATCH 2/2] Put back `null` default --- src/test/java/com/github/packageurl/PurlParameters.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/github/packageurl/PurlParameters.java b/src/test/java/com/github/packageurl/PurlParameters.java index d033587..4471a22 100644 --- a/src/test/java/com/github/packageurl/PurlParameters.java +++ b/src/test/java/com/github/packageurl/PurlParameters.java @@ -98,7 +98,7 @@ private PurlParameters( this.version = version; if (qualifiers != null) { this.qualifiers = qualifiers.toMap().entrySet().stream() - .collect(Collectors.toMap(Map.Entry::getKey, entry -> Objects.toString(entry.getValue()))); + .collect(Collectors.toMap(Map.Entry::getKey, entry -> Objects.toString(entry.getValue(), null))); } else { this.qualifiers = Collections.emptyMap(); }