Skip to content

Commit 1fa7704

Browse files
committed
Fix potential NullPointerException in dependency extraction
1 parent 12f6ee2 commit 1fa7704

File tree

1 file changed

+14
-11
lines changed
  • buildSrc/src/main/java/org/springframework/boot/build/bom

1 file changed

+14
-11
lines changed

buildSrc/src/main/java/org/springframework/boot/build/bom/BomPlugin.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,9 @@ private void replaceVersionsWithVersionPropertyReferences(Node dependencyManagem
140140
Node dependencies = findChild(dependencyManagement, "dependencies");
141141
if (dependencies != null) {
142142
for (Node dependency : findChildren(dependencies, "dependency")) {
143-
String groupId = findChild(dependency, "groupId").text();
144-
String artifactId = findChild(dependency, "artifactId").text();
145-
Node classifierNode = findChild(dependency, "classifier");
146-
String classifier = (classifierNode != null) ? classifierNode.text() : "";
143+
String groupId = extractText(findChild(dependency, "groupId"));
144+
String artifactId = extractText(findChild(dependency, "artifactId"));
145+
String classifier = extractText(findChild(dependency, "classifier"));
147146
String versionProperty = this.bom.getArtifactVersionProperty(groupId, artifactId, classifier);
148147
if (versionProperty != null) {
149148
findChild(dependency, "version").setValue("${" + versionProperty + "}");
@@ -156,8 +155,8 @@ private void addExclusionsToManagedDependencies(Node dependencyManagement) {
156155
Node dependencies = findChild(dependencyManagement, "dependencies");
157156
if (dependencies != null) {
158157
for (Node dependency : findChildren(dependencies, "dependency")) {
159-
String groupId = findChild(dependency, "groupId").text();
160-
String artifactId = findChild(dependency, "artifactId").text();
158+
String groupId = extractText(findChild(dependency, "groupId"));
159+
String artifactId = extractText(findChild(dependency, "artifactId"));
161160
this.bom.getLibraries()
162161
.stream()
163162
.flatMap((library) -> library.getGroups().stream())
@@ -179,8 +178,8 @@ private void addTypesToManagedDependencies(Node dependencyManagement) {
179178
Node dependencies = findChild(dependencyManagement, "dependencies");
180179
if (dependencies != null) {
181180
for (Node dependency : findChildren(dependencies, "dependency")) {
182-
String groupId = findChild(dependency, "groupId").text();
183-
String artifactId = findChild(dependency, "artifactId").text();
181+
String groupId = extractText(findChild(dependency, "groupId"));
182+
String artifactId = extractText(findChild(dependency, "artifactId"));
184183
Set<String> types = this.bom.getLibraries()
185184
.stream()
186185
.flatMap((library) -> library.getGroups().stream())
@@ -207,9 +206,9 @@ private void addClassifiedManagedDependencies(Node dependencyManagement) {
207206
Node dependencies = findChild(dependencyManagement, "dependencies");
208207
if (dependencies != null) {
209208
for (Node dependency : findChildren(dependencies, "dependency")) {
210-
String groupId = findChild(dependency, "groupId").text();
211-
String artifactId = findChild(dependency, "artifactId").text();
212-
String version = findChild(dependency, "version").text();
209+
String groupId = extractText(findChild(dependency, "groupId"));
210+
String artifactId = extractText(findChild(dependency, "artifactId"));
211+
String version = extractText(findChild(dependency, "version"));
213212
Set<String> classifiers = this.bom.getLibraries()
214213
.stream()
215214
.flatMap((library) -> library.getGroups().stream())
@@ -296,6 +295,10 @@ private boolean isNodeWithName(Object candidate, String name) {
296295
return false;
297296
}
298297

298+
private String extractText(Node node) {
299+
return (node != null) ? node.text() : "";
300+
}
301+
299302
}
300303

301304
}

0 commit comments

Comments
 (0)