Relatório com spring boot e conexao que não fecha

Boa noite, pessoa estou passando por um bate cabeça danado. Já não bastasse a quebra de cabeça pra gerar o relatório, agora quando gero, se eu gerar 10 vezes, o sistema para de gerar o relatório.

o código é esse

@Qualifier(“pgDataSource”)
@Autowired
DataSource dataSource;

@PostMapping(value = "/pacientes")
public void pacientes(@RequestParam Map<String, Object> parametros, HttpServletResponse response) throws JRException, SQLException, IOException {

    parametros = parametros == null ? parametros = new HashMap<>() : parametros;


    // Pega o arquivo .jasper localizado em resources
    InputStream jasperStream = this.getClass().getResourceAsStream("/relatorios/relatorio_total_pacientes.jasper");

    // Cria o objeto JaperReport com o Stream do arquivo jasper
    JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperStream);
    // Passa para o JasperPrint o relatório, os parâmetros e a fonte dos dados, no caso uma conexão ao banco de dados
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametros, dataSource.getConnection());
    // Configura a respota para o tipo PDF
    response.setContentType("application/pdf");
    // Define que o arquivo pode ser visualizado no navegador e também nome final do arquivo
    // para fazer download do relatório troque 'inline' por 'attachment'
    response.setHeader("Content-Disposition", "inline; filename=pacientes.pdf");

    // Faz a exportação do relatório para o HttpServletResponse
    final OutputStream outStream = response.getOutputStream();
    JasperExportManager.exportReportToPdfStream(jasperPrint, outStream);
}

fiz um debug no logging.level.com.zaxxer.hikari=debug e percebi que ele nao fecha a conexão, ou seja, eu gero um relatório e a conexão continua ativa. Alguém já passou por isso?

Solução:
Jogar uma conn dentro do try

> @Qualifier("pgDataSource")
@Autowired
DataSource dataSource;

@PostMapping(value = "/pacientes")
public void pacientes(@RequestParam Map<String, Object> parametros, HttpServletResponse response) throws JRException, SQLException, IOException {

    parametros = parametros == null ? parametros = new HashMap<>() : parametros;

    try(Connection conn = dataSource.getConnection();) {
        // Pega o arquivo .jasper localizado em resources
        InputStream jasperStream = this.getClass().getResourceAsStream("/relatorios/relatorio_total_pacientes.jasper");

        // Cria o objeto JaperReport com o Stream do arquivo jasper
        JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperStream);
        // Passa para o JasperPrint o relatório, os parâmetros e a fonte dos dados, no caso uma conexão ao banco de dados
        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametros, conn);
        // Configura a respota para o tipo PDF
        response.setContentType("application/pdf");
        // Define que o arquivo pode ser visualizado no navegador e também nome final do arquivo
        // para fazer download do relatório troque 'inline' por 'attachment'
        response.setHeader("Content-Disposition", "inline; filename=pacientes.pdf");

        // Faz a exportação do relatório para o HttpServletResponse
        final OutputStream outStream = response.getOutputStream();
        JasperExportManager.exportReportToPdfStream(jasperPrint, outStream);
    }
    catch (SQLException e){
        e.printStackTrace();
    }


}