protected void streamResource(URL resourceUrl, RouteContext routeContext) {
try {
setResponseHeaders(resourceUrl, routeContext);
if (routeContext.getResponse().getStatus() == HttpConstants.StatusCode.NOT_MODIFIED) {
routeContext.getResponse().commit();
} else {
sendResource(resourceUrl, routeContext);
}
} catch (IOException e) {
String message = e.getMessage();
if (!StringUtils.isNullOrEmpty(message)) {
log.warn("Error sending resource {} to {}: {}",
resourceUrl, routeContext.getRequest().getClientIp(), message);
} else {
throw new PippoRuntimeException(e, "Failed to stream resource {}", resourceUrl);
}
} catch (Exception e) {
throw new PippoRuntimeException(e, "Failed to stream resource {}", resourceUrl);
}
}