Skip to content

Commit 706f308

Browse files
committed
Abort upgrades upon user interrupt
Closes gh-39685
1 parent 90edd92 commit 706f308

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/InteractiveUpgradeResolver.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import java.util.ArrayList;
2020
import java.util.Collection;
21+
import java.util.Collections;
2122
import java.util.HashMap;
2223
import java.util.List;
2324
import java.util.Map;
@@ -52,7 +53,12 @@ public List<Upgrade> resolveUpgrades(Collection<Library> librariesToUpgrade, Col
5253
}
5354
List<LibraryWithVersionOptions> libraryUpdates = this.libraryUpdateResolver
5455
.findLibraryUpdates(librariesToUpgrade, librariesByName);
55-
return libraryUpdates.stream().map(this::resolveUpgrade).filter(Objects::nonNull).toList();
56+
try {
57+
return libraryUpdates.stream().map(this::resolveUpgrade).filter(Objects::nonNull).toList();
58+
}
59+
catch (UpgradesInterruptedException ex) {
60+
return Collections.emptyList();
61+
}
5662
}
5763

5864
private Upgrade resolveUpgrade(LibraryWithVersionOptions libraryWithVersionOptions) {
@@ -69,8 +75,15 @@ private Upgrade resolveUpgrade(LibraryWithVersionOptions libraryWithVersionOptio
6975
options.addAll(libraryWithVersionOptions.getVersionOptions());
7076
return questions.selectOption(question, options, defaultOption);
7177
}).get();
78+
if (this.userInputHandler.interrupted()) {
79+
throw new UpgradesInterruptedException();
80+
}
7281
return (selected.equals(defaultOption)) ? null
7382
: new Upgrade(libraryWithVersionOptions.getLibrary(), selected.getVersion());
7483
}
7584

85+
static class UpgradesInterruptedException extends RuntimeException {
86+
87+
}
88+
7689
}

0 commit comments

Comments
 (0)