Como tratar a exceção IllegalStateException?

Quando tento excluir uma tabela que tem “filhos” relacionados é lançado o erro:

Grave: Servlet.service() for servlet [Faces Servlet] in context with path [/sgp] threw exception
java.lang.IllegalStateException: Transaction not active
at org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:103)
at Util.JPAFilter.doFilter(JPAFilter.java:42)

Só que não consigo capturar com catch.

Alguém pode me ajudar?

Segue abaixo a procedure:

public void excluirVisitante() {
if (this.visitante.getId() != 0) {
try {
EntityManager manager = this.getEntityManager();
VisitanteRepositorio repositorio = new VisitanteRepositorio(manager);

		repositorio.remove(this.visitante.getId());
				
		FacesMessage mensagem = new FacesMessage ("Ok, Visitante excluído!");
		mensagem.setSeverity(FacesMessage.SEVERITY_INFO);
		FacesContext.getCurrentInstance().addMessage("formCadastroVisitante:painelPrincipal", mensagem);
	} catch (Exception e) {
		FacesMessage mensagem = new FacesMessage ("Erro ao Excluir Visitante!");
		mensagem.setSeverity(FacesMessage.SEVERITY_ERROR);
		FacesContext.getCurrentInstance().addMessage("formCadastroVisitante:painelPrincipal", mensagem);
	}  
} else {
	FacesMessage mensagem = new FacesMessage ("Selecione um registro antes!");
	mensagem.setSeverity(FacesMessage.SEVERITY_WARN);
	FacesContext.getCurrentInstance().addMessage("formCadastroVisitante:painelPrincipal", mensagem);
}

}

primeiro coloca a tag [code] no seu codigo, fica melhor pro pessoal visualizar seu codigo

coloca o codigo da entidade que vc esta tentando excluir

Bertoldo,

Acho que isso pode te ajudar:
http://www.guj.com.br/java/117715-javalangillegalstateexception-transaction-not-active