Duvida geração de PDFs Jasper

Salve galera, visito o fórum a um tempo já, mas só agora resolvi criar uma conta!

Estou trabalhando em uma aplicação voltada para o ramo da educação onde preciso criar vários arquivos PDF que serão os certificados dos alunos.
Esses arquivos ficarão registrados no BD (por isso é necessário que seja um arquivo para cada aluno).
Consigo criar o arquivo para um aluno perfeitamente, porém quando “tento” criar arquivos em sequência não sai (gera somente um arquivo, do ultimo registro da lista). Estou usando uma estrutura de repetição encadeada para percorrer uma lista de alunos e criar o arquivo para cada um.
Segue o código

Método que monta a lista de alunos a serem impressos

private void geraCertificadoFinalMOPPCIPA() throws CertificacaoServiceException {
        
        lista = certificacaoService.buscarAlunosTurmaImpressaoCertificado(listaMatriculasSelecionadasImpressao, tipoDocumento);
        path = "/pages/certificacao/emissao/relatorios/documento_certificado.jasper";
        
        aux = CollectionFactory.newList();
        for (CertificadoConsulta documento : lista) {
            CertificadoDocumento certificadoDocumento = new CertificadoDocumento(documento);
            fileName = "Certificados do Curso " + certificadoDocumento.getNomeEstudante() + ".pdf";
            aux.add(certificadoDocumento);
            criaDocumentoFisico();
            aux.clear();
        }
    }

metodo que gera o PDF fisicamente

private void criaDocumentoFisico() {
        
        FacesContext facesContext = FacesContext.getCurrentInstance();
        ServletContext servletContext = (ServletContext) facesContext.getExternalContext().getContext();
        String pathRel = servletContext.getRealPath(path);

        HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
        response.setContentType("application/pdf");

        //Cria um data source com uma lista dos objetos utilizados para a geração do PDF.
        JRDataSource jrDS = new JRBeanCollectionDataSource(aux);

        //parametros  
        Map<String, Object> parametros = new HashMap<String, Object>();

        try {
            JasperPrint print = JasperFillManager.fillReport(pathRel, parametros, jrDS);
            byte[] bytes = JasperExportManager.exportReportToPdf(print);

            response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\";");
            response.setContentLength(bytes.length);
            ServletOutputStream ouputStream = response.getOutputStream();
            ouputStream.write(bytes, 0, bytes.length);
            facesContext.responseComplete();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

Alguém já conseguiu gerar vários arquivos PDF em sequência?

Agradeço!

verificou se sua lista esta com todos elementos dentro do for ? porque se só imprime o último elemento da lista certamente la dentro vc esta dado um new ArrayList(); zerando a lista quando adiciona os elementos dentro, ficando apenas o último no final da iteração.

Fiz um teste usando o server em Debug, monitorei a lista, e ela permace intacta.

Tenho a impressão que o problema seja o

FacesContext facesContext = FacesContext.getCurrentInstance();

porque a primeira vez que passa nessa linha, demora um pouco, mas as outras vezes (ou seja, os outros alunos) vai rápido.
:?

ele imprime os dados do primeiro aluno, mas com o fileName do ultimo Oo.