[iCalendar] Fix httpclient getting stuck with broken requests (#11866)

* [iCalendar] Fix httpclient getting stuck with broken requests

Fixes #9827

Signed-off-by: Stefan Triller <github@stefantriller.de>
pull/11910/head
Stefan Triller 2021-12-31 11:46:36 +01:00 committed by GitHub
parent cf86044580
commit a1df7a82ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 6 deletions

View File

@ -102,22 +102,25 @@ class PullJob implements Runnable {
try {
response = asyncListener.get(HTTP_TIMEOUT_SECS, TimeUnit.SECONDS);
} catch (InterruptedException e1) {
logger.warn("Download of calendar was interrupted.");
logger.debug("InterruptedException message is: {}", e1.getMessage());
logger.warn("Download of calendar was interrupted: {}", e1.getMessage());
request.abort(e1.getCause() != null ? e1.getCause() : e1);
return;
} catch (TimeoutException e1) {
logger.warn("Download of calendar timed out (waited too long for headers).");
logger.debug("TimeoutException message is: {}", e1.getMessage());
logger.warn("Download of calendar timed out (waited too long for headers): {}", e1.getMessage());
request.abort(e1.getCause() != null ? e1.getCause() : e1);
return;
} catch (ExecutionException e1) {
logger.warn("Download of calendar failed.");
logger.debug("ExecutionException message is: {}", e1.getCause().getMessage());
String msg = e1.getCause() != null ? e1.getCause().getMessage() : "";
logger.warn("Download of calendar failed with ExecutionException: {}", msg);
request.abort(e1.getCause() != null ? e1.getCause() : e1);
return;
}
if (response.getStatus() != HttpStatus.OK_200) {
logger.warn("Response status for getting \"{}\" was {} instead of 200. Ignoring it.", sourceURI,
response.getStatus());
request.abort(new IllegalStateException(
"Got response status " + response.getStatus() + " while requesting " + sourceURI));
return;
}