diff --git a/bundles/org.openhab.binding.icalendar/src/main/java/org/openhab/binding/icalendar/internal/handler/PullJob.java b/bundles/org.openhab.binding.icalendar/src/main/java/org/openhab/binding/icalendar/internal/handler/PullJob.java index 045100cc6..65db2a29c 100644 --- a/bundles/org.openhab.binding.icalendar/src/main/java/org/openhab/binding/icalendar/internal/handler/PullJob.java +++ b/bundles/org.openhab.binding.icalendar/src/main/java/org/openhab/binding/icalendar/internal/handler/PullJob.java @@ -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; }