try {
log.tracef("Serving file %s (blocking)", fileChannel);
Channels.transferBlocking(response, fileChannel, 0, file.length());
log.tracef("Finished serving %s, shutting down (blocking)", fileChannel);
response.shutdownWrites();
log.tracef("Finished serving %s, flushing (blocking)", fileChannel);
Channels.flushBlocking(response);
log.tracef("Finished serving %s (complete)", fileChannel);
exchange.endExchange();
} catch (IOException ignored) {