private void servePath(final Context context, final Path file) throws Exception { readAttributes(file, cacheMetadata, attributes -> { if (attributes == null) { context.next(); } else if (attributes.isRegularFile()) { if (context.getRequest().getMethod().isGet()) { sendFile(context, file, attributes); } else { context.clientError(405); } } else if (attributes.isDirectory()) { if (context.getRequest().getMethod().isGet()) { maybeSendFile(context, file, 0); } else { context.clientError(405); } } else { context.next(); } }); }