Problema com <p:fileDownload> Primefaces

Criei um botão responsável por fazer o download de um relatório da seguinte forma:

<p:commandButton id="btnImprimeSimulação" icon="ui-icon-print" actionListener="#{acaoMBean.preparaImpressaoSimulacaoAcordo}" value="Imprimir" title="Imprime essa simulação" style="width:100px;"> <p:fileDownload value="#{acaoMBean.file}" /> </p:commandButton>

O código do método que gera o relatório é o seguinte:

[code] public void preparaImpressaoSimulacaoAcordo(ActionEvent actionEvent) throws Exception {

              .  
              .  
              .  
  
    ClientOutput clientOutput = new ClientOutput();  
    //FacesContext facesContext = FacesContext.getCurrentInstance();  
    //facesContext.getExternalContext().getRequest();  
    //HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();  
    //OutputStream os = null;  
  
    try {  
        String reportUrlReal = clientOutput.getApplicationRoot()+"\\WEB-INF\\classes\\rptAcordoSimulacao.jasper";  
  
        JasperPrint jasperPrint = JasperFillManager.fillReport(reportUrlReal, mapa, ds);  
        byte[] pdf = JasperExportManager.exportReportToPdf(jasperPrint);  
  
        //os = response.getOutputStream();  
        clientOutput.getResponse().setContentType("application/pdf");  
        clientOutput.getResponse().setContentLength(pdf.length);  
        clientOutput.getResponse().setHeader("Content-disposition","attachment; filename=\"rptAcordoSimulacao.pdf\"");  
        clientOutput.getOutputStream().write(pdf);  
        clientOutput.getOutputStream().flush();  
  
        //ExternalContext externalContext = clientOutput.getFc().getExternalContext();  
        //InputStream input = externalContext.getResourceAsStream("/WEB-INF/classes/rptAcordoSimulacao.jasper");  
  
        InputStream input = clientOutput.getServletContext().getResourceAsStream("/WEB-INF/classes/rptAcordoSimulacao.jasper");  
  
        this.file = new DefaultStreamedContent(input, "application/pdf", "rptAcordoSimulacao.jasper");  
    } catch (Exception e) {  
        e.printStackTrace();  
    } finally{  
        try {  
            if(clientOutput.getOutputStream() != null){  
                clientOutput.getOutputStream().close();  
            }  
            clientOutput.responseComplete();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
}  

[/code]

Após clicar no botão e gerar o relatório a caixa de diálogo de download não é exibida!

Alguém sabe me dizer porque?

Obrigado.

Resolvi o problema colocando o botão dentro de um <p:dialog>! A janela para o donwload foi exibida normalmente agora!
O porque de funcionar somente dentro de um <p:dialog> eu não sei!!! Se alguém conseguir me responder… agradeço!!!