Problema ao popular BD utilizando Hibernate

Olá pessoal.

Sou iniciante no desenvolvimento com Hibernate e estou tendo um probleminha quando utilizo o método abaixo:

public String populaBD() throws InterruptedException{
        Curso curso1 = new Curso("Ciência da Computação");
        Curso curso2 = new Curso("Sistemas de Informação");
            
        CursoDAO cursoDAO = new CursoDAOImpl();
        try { 
            cursoDAO.criaCurso(curso1);
            cursoDAO.criaCurso(curso2);
        } catch (DAOException ex) {
            
        }
        
        Departamento departamento = new Departamento("DCOMP");
            
        DepartamentoDAO departamentoDAO = new DepartamentoDAOImpl();
        try { 
            departamentoDAO.criaDepartamento(departamento);            
        } catch (DAOException ex) {
            
        }
        
               
        PessoaDAO pessoaDAO = new PessoaDAOImpl();
        
        Pessoa pessoa1 =  new Aluno("Jack", curso1, "1111111","jackbauer@gmail.com");
        Pessoa pessoa2 = new Professor("Charlie", curso1, "222222","charliesheen@gmail.com", departamento);
            
        try {
            pessoaDAO.criaPessoa(pessoa1);
            pessoaDAO.criaPessoa(pessoa2);
        } catch (DAOException ex) {
        }
        
        
        DisciplinaDAO disciplinaDAO = new DisciplinaDAOImpl();
        
        Disciplina disciplina1 = new Disciplina("CCO21","AEDSI");
        try {
            disciplinaDAO.criaDisciplina(disciplina1);            
        } catch (DAOException ex) {
        }
        
        Disciplina disciplina2 = new Disciplina("CCO20","POO");
        try {
            disciplinaDAO.criaDisciplina(disciplina2);
        } catch (DAOException ex) {
        }
        
        EmentaDAO ementaDAO = new EmentaDAOImpl();
        Ementa ementa = new Ementa("Ementa AEDSI",disciplina1);
        try { 
            ementaDAO.criaEmenta(ementa);
        } catch (DAOException ex) {
        }
        return null;
    }

Ao executá-lo consigo cadastrar até a primeira disciplina, ou seja, até a linha 44 tudo ocorre perfeitamente. Consigo definir isso por que no log do Glassfish vejo o código de inserção de tudo incluindo a primeira disciplina, mas após isso não aparece nenhuma mensagem.

Pelo que percebi a aplicação entra em loop e a página fica carregando sem obter nenhuma resposta.

Alguém tem idéia do que isso possa ser?

Obs.: As vezes a função executa corretamente. Mas geralmente acontece o que falei anteriormente.

A primeira coisa que você deve fazer é parar de silenciar as exceções. Não deixe estes catch vazios. Aliás, você nem precisa fazer este tratamento o tempo todo. Quando você tirar os try/catch daí, vai poder ver qual exceção está ocorrendo.

A exceção do Hibernate é unchecked justamente para não te forçar a fazer a checagem desta maneira. Faça-a num ponto centralizado da sua aplicação.

Esse código é apenas pra teste. Não me preocupei com nada não. E mesmo que não tratadas, nenhuma exceção acontece.

O que não entendi é por que a aplicação entra em loop. E por que se eu reiniciar o servidor e testar funciona. Isso está me intrigando.

Esperava alguma exceção de PermGen space… mas não foi o que aconteceu. :?