[FEATURE] Handle non 2XX codes in Downloader

This commit is contained in:
Gravita 2024-02-15 01:31:27 +07:00
parent 0b59d6c0ed
commit d40dc09aca

View file

@ -190,7 +190,13 @@ public CompletableFuture<Void> downloadFiles(List<SizedFile> files, String baseU
} }
try { try {
DownloadTask task = sendAsync(file, baseUri, targetDir, callback); DownloadTask task = sendAsync(file, baseUri, targetDir, callback);
task.completableFuture.thenAccept(consumerObject.next).exceptionally(ec -> { task.completableFuture.thenCompose((res) -> {
if(res.statusCode() < 200 || res.statusCode() >= 300) {
return CompletableFuture.failedFuture(new IOException(String.format("Failed to download %s: code %d",
file.urlPath != null ? file.urlPath /* TODO: baseUri */ : file.filePath, res.statusCode())));
}
return CompletableFuture.completedFuture(res);
}).thenAccept(consumerObject.next).exceptionally(ec -> {
future.completeExceptionally(ec); future.completeExceptionally(ec);
return null; return null;
}); });