ResponseWriter originalWriter = facesContext.getRenderKit().createResponseWriter( response.getWriter(), "text/html", "UTF-8" );
StateWriterControl.initialize(originalWriter);
ResponseWriter writer = StateWriterControl.createClone(originalWriter);
facesContext.setResponseWriter(writer);
writer.startDocument();
viewRoot.encodeAll(facesContext);
writer.endDocument();
writer.close();
writeState(facesContext, originalWriter);
originalWriter.flush();
facesContext.responseComplete();