Skip to content

Commit

Permalink
Abort upgrades upon user interrupt
Browse files Browse the repository at this point in the history
Closes gh-39685
  • Loading branch information
wilkinsona committed Oct 18, 2024
1 parent 90edd92 commit 706f308
Showing 1 changed file with 14 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -52,7 +53,12 @@ public List<Upgrade> resolveUpgrades(Collection<Library> librariesToUpgrade, Col
}
List<LibraryWithVersionOptions> libraryUpdates = this.libraryUpdateResolver
.findLibraryUpdates(librariesToUpgrade, librariesByName);
return libraryUpdates.stream().map(this::resolveUpgrade).filter(Objects::nonNull).toList();
try {
return libraryUpdates.stream().map(this::resolveUpgrade).filter(Objects::nonNull).toList();
}
catch (UpgradesInterruptedException ex) {
return Collections.emptyList();
}
}

private Upgrade resolveUpgrade(LibraryWithVersionOptions libraryWithVersionOptions) {
Expand All @@ -69,8 +75,15 @@ private Upgrade resolveUpgrade(LibraryWithVersionOptions libraryWithVersionOptio
options.addAll(libraryWithVersionOptions.getVersionOptions());
return questions.selectOption(question, options, defaultOption);
}).get();
if (this.userInputHandler.interrupted()) {
throw new UpgradesInterruptedException();
}
return (selected.equals(defaultOption)) ? null
: new Upgrade(libraryWithVersionOptions.getLibrary(), selected.getVersion());
}

static class UpgradesInterruptedException extends RuntimeException {

}

}

0 comments on commit 706f308

Please sign in to comment.