protected ChannelFuture writeResponse(ChannelHandlerContext ctx, Object response, Queue<ResponseTransformer> t) { if (res.isRedirect()) { return doWrite(ctx); } if (response instanceof HttpResponse) { res = (HttpResponse) response; return doWrite(ctx); } List<ResponseTransformer> ts = new FixedSortedList<>(t); boolean notAcceptable = false; for (ResponseTransformer transformer : ts) { if (transformer.canTransform(response, request, request.getMatchedMediaType(), method, ctx)) { transformer.transform(response, request, res, request.getMatchedMediaType(), method, ctx); notAcceptable = false; break; } notAcceptable = true; } if (notAcceptable) { res.setStatus(HttpStatus.NOT_ACCEPTABLE); } return doWrite(ctx); }