Skip to content

Commit 62ac909

Browse files
authored
fix: correct issues with PackageURL (#159)
* Fix potential null pointers * Use `String::replace()` instead of `replaceAll` for single characters * Use `isEmpty` which can be more efficient * Remove exception which is not thrown
1 parent 1b7ae52 commit 62ac909

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

src/main/java/com/github/packageurl/PackageURL.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -344,9 +344,6 @@ private String validateName(final String value) throws MalformedPackageURLExcept
344344
}
345345

346346
private String validateVersion(final String value) {
347-
if (value == null) {
348-
return null;
349-
}
350347
return value;
351348
}
352349

@@ -445,9 +442,9 @@ private String canonicalize(boolean coordinatesOnly) {
445442
purl.append("@").append(percentEncode(version));
446443
}
447444
if (! coordinatesOnly) {
448-
if (qualifiers != null && qualifiers.size() > 0) {
445+
if (qualifiers != null && !qualifiers.isEmpty()) {
449446
purl.append("?");
450-
qualifiers.entrySet().stream().forEachOrdered((entry) -> {
447+
qualifiers.entrySet().stream().forEachOrdered(entry -> {
451448
purl.append(toLowerCase(entry.getKey()));
452449
purl.append("=");
453450
purl.append(percentEncode(entry.getValue()));
@@ -473,7 +470,7 @@ private String percentEncode(final String input) {
473470
}
474471

475472
private static String uriEncode(String source, Charset charset) {
476-
if (source == null || source.length() == 0) {
473+
if (source == null || source.isEmpty()) {
477474
return source;
478475
}
479476

@@ -710,7 +707,7 @@ private Map<String, String> parseQualifiers(final Map<String, String> qualifiers
710707
private Map<String, String> parseQualifiers(final String encodedString) throws MalformedPackageURLException {
711708
try {
712709
final TreeMap<String, String> results = Arrays.stream(encodedString.split("&"))
713-
.collect(TreeMap<String, String>::new,
710+
.collect(TreeMap::new,
714711
(map, value) -> {
715712
final String[] entry = value.split("=", 2);
716713
if (entry.length == 2 && !entry[1].isEmpty()) {
@@ -720,15 +717,15 @@ private Map<String, String> parseQualifiers(final String encodedString) throws M
720717
}
721718
}
722719
},
723-
TreeMap<String, String>::putAll);
720+
TreeMap::putAll);
724721
return validateQualifiers(results);
725722
} catch (ValidationException e) {
726723
throw new MalformedPackageURLException(e);
727724
}
728725
}
729726

730727
@SuppressWarnings("StringSplitter")//reason: surprising behavior is okay in this case
731-
private String[] parsePath(final String value, final boolean isSubpath) throws MalformedPackageURLException {
728+
private String[] parsePath(final String value, final boolean isSubpath) {
732729
if (value == null || value.isEmpty()) {
733730
return null;
734731
}

0 commit comments

Comments
 (0)