Ayuda en Descarga de archivo PDF con JSF

Hola, estoy haciendo una pequeña aplicacion de descarga de un archivo, cuando se le da click en un boton, el archivo se va construyentoy cuando termina, manda una ventanita de descarga. El problema que tengo es que cuando aparece la ventana, todos los elementos se quedan "trabados" y no responde hasta que refresco la pagina. Podrian ayudarme por favor. Se los agradecere mucho. Dejo el codigo para realizar la descarga. Gracias.

                             
  File ficheroPDF = new File(rutaDescarga);
                               FacesContext ctx2 = FacesContext.getCurrentInstance();
                               FileInputStream fis = new FileInputStream(ficheroPDF);
                               byte[] bytes = new byte[1000];
                               if (!ctx.getResponseComplete()) {
                                   String fileName2 = ficheroPDF.getName();
                                   String contentType = "application/pdf";
                                   HttpServletResponse response = (HttpServletResponse)ctx2.getExternalContext().getResponse();

                                   response.setContentType(contentType);

                                   response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName2 + "\"");

                                   OutputStream out = response.getOutputStream();
                                   int read2 = fis.read(bytes);

                                   while (read2 >= 0) {
                                       if (read2 > 0) {
                                           out.write(bytes, 0, read2);
                                       }
                                       read2 = fis.read(bytes);
                                   }
                               
                                   out.flush();
                                   out.close();
                                   fis.close();
                                   ctx.responseComplete();