Como tratar a exceção IllegalStateException?

2 respostas
B

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);
}

}

2 Respostas

DaniloAndrade

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

jaboot

Bertoldo,

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

Criado 3 de maio de 2013
Ultima resposta 3 de mai. de 2013
Respostas 2
Participantes 3