public ContainerResponse call(ContainerRequest containerRequest) { ByteBuffer byteBuf = ByteBuffer.allocate(BUFFER_CAPACITY); ContainerResponse response; try { response = handler.apply(containerRequest, new ByteBufferOutputStream(byteBuf)).get(); } catch (Exception e) { logger.debug("Failed while handling the request - " + containerRequest, e); response = new ContainerResponse(containerRequest, Response.serverError().build()); } ContainerResponseWriter responseWriter = containerRequest.getResponseWriter(); OutputStream os = responseWriter.writeResponseStatusAndHeaders(response.getLength(), response); response.setEntityStream(os); return response; }