Skip to content

Commit 9a0a75d

Browse files
authored
Update VersionUtility.java
Fix to handle non-standard Yarn component version entries.
1 parent 50a56ed commit 9a0a75d

File tree

1 file changed

+12
-5
lines changed
  • detectable/src/main/java/com/blackduck/integration/detectable/detectables/yarn

1 file changed

+12
-5
lines changed

detectable/src/main/java/com/blackduck/integration/detectable/detectables/yarn/VersionUtility.java

+12-5
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22

33
import com.blackduck.integration.bdio.graph.builder.LazyIdSource;
44
import com.blackduck.integration.util.NameVersion;
5-
import java.util.Comparator;
6-
import java.util.List;
7-
import java.util.Optional;
5+
import java.util.*;
6+
import java.util.regex.*;
87

98
public class VersionUtility {
109

@@ -20,7 +19,15 @@ Version buildVersion(String version) {
2019
sb.append(cleanVersion.charAt(i));
2120
}
2221
}
23-
return new Version(sb.toString().split("\\.", 3));
22+
Matcher matcher = Pattern.compile("(\\d+(?:\\.\\d+)+)(?!.*\\d+\\.\\d+)").matcher(sb.toString());
23+
List<String> parts = new ArrayList<>();
24+
if (matcher.find()) {
25+
Matcher versionMatcher = Pattern.compile("(\\d+)").matcher(matcher.group(1));
26+
while (parts.size() < 3 && versionMatcher.find()) {
27+
parts.add(versionMatcher.group());
28+
}
29+
}
30+
return new Version(parts.toArray(new String[0]));
2431
}
2532

2633
Optional<String> resolveYarnVersion(List<Version> versionList, String version) {
@@ -167,4 +174,4 @@ Optional<NameVersion> getNameVersion(String dependencyIdString) {
167174
}
168175
return Optional.empty();
169176
}
170-
}
177+
}

0 commit comments

Comments
 (0)