@Override
        public HttpResponse serve(ServiceRequestContext ctx, HttpRequest req) {
            return HttpResponse.of(
                    first.findFile(ctx, req)
                         .readAttributes(ctx.blockingTaskExecutor())
                         .thenApply(firstAttrs -> {
                             try {
                                 if (firstAttrs != null) {
                                     return first.serve(ctx, req);
                                 }

                                 return second.serve(ctx, req);
                             } catch (Exception e) {
                                 return Exceptions.throwUnsafely(e);
                             }
                         }));
        }
Creates a new {@link HttpService} that tries this {@link FileService} first and then the specified
{@link HttpService} when this {@link FileService} does not have a requested resource.

@param nextService the {@link HttpService} to try secondly
core/src/main/java/com/linecorp/armeria/server/file/FileService.java