this.errorImage = errorImage;
}
@Override
protected Tile compute() {
ClientHttpResponse response = null;
try {
LOGGER.debug("\n\t" + this.tileRequest.getMethod() + " -- " + this.tileRequest.getURI());
response = this.tileRequest.execute();
final HttpStatus statusCode = response.getStatusCode();
if (statusCode != HttpStatus.OK) {
LOGGER.error("Error making tile request: " + this.tileRequest.getURI() + "\n\tStatus: " + statusCode +
"\n\tMessage: " + response.getStatusText());
return new Tile(this.errorImage, getTileIndexX(), getTileIndexY());
}
BufferedImage image = ImageIO.read(response.getBody());
if (image == null) {
LOGGER.warn("The URL: " + this.tileRequest.getURI() + " is an image format that can be decoded");
image = this.errorImage;
}
return new Tile(image, getTileIndexX(), getTileIndexY());
} catch (IOException e) {
throw ExceptionUtils.getRuntimeException(e);
} finally {
if (response != null) {
response.close();
}
}
}