@Override public void render(OutputStream output, ContentChannel networkChannel, CompletionHandler handler) throws IOException { if (rendererCopy instanceof AsynchronousSectionedRenderer) { AsynchronousSectionedRenderer<Result> renderer = (AsynchronousSectionedRenderer<Result>) rendererCopy; renderer.setNetworkWiring(networkChannel, handler); } try { try { waitableRender(output); } finally { if (!(rendererCopy instanceof AsynchronousSectionedRenderer)) { output.flush(); } } } finally { if (networkChannel != null && !(rendererCopy instanceof AsynchronousSectionedRenderer)) { networkChannel.close(handler); } } }