Tratamento de NullPointerException [URGENTE]

Java

06/12/2016

Boa tarde amigos,

Preciso de uma ajuda pois tenho de apresentar um projeto TCC hoje, porém, meu projeto está apresentando NullPointerException para quando não inserimos nenhum valor nos campos de uma tela.
Ja tentei tratar da seguinte forma:

CLASSE CONTROL:

//METODO PARA SALVAR DESPESA
	public void SalvaDespesa(){

		usuario = despesadao.retornaUsuario(idUsuarioSession.getCpf());
		despesa.setUsuario(usuario);

		if(despesa.getValorDespesa() <= 0.0){

			FacesUtil.addErrorMessage("O valor da despesa não pode ser menor que 0.");

		} else {

			if(despesa.getValorDespesa()==null){

				despesadao.SalvarDespesa(despesa,usuario.getCpf());
				despesa = new Despesa();

			}else{
				despesadao.SalvarDespesa(despesa,usuario.getCpf());
				despesa = new Despesa();
			}
		}
	}


CLASSE DAO:

public void SalvarDespesa (Despesa despesa, String idUsuarioSession){

		
		try {

			EntityManagerFactory emf = Persistence.createEntityManagerFactory("calcPU");
			EntityManager em = emf.createEntityManager();


			Object cpfUsuario = em.find(Usuario.class, idUsuarioSession);
			despesa.setUsuario((Usuario) cpfUsuario);
			em.getTransaction().begin();
			em.persist(despesa);
			em.getTransaction().commit();
			despesa = new Despesa();

			FacesUtil.addSuccesMessage("Despesa adicionada com sucesso!");

		} catch(NullPointerException e){
			FacesUtil.addErrorMessage("Os campos não podem ser nulos!");
		}
	}
Salute Especializadas

Salute Especializadas

Curtidas 0

Respostas

Jones Granatyr

Jones Granatyr

06/12/2016

Opa! Geralmente esse erro ocorre quando um objeto não foi instanciado. Em qual linha está gerando o erro? Recomendo que você coloque um break point pra tentar descobrir em qual parte do código talvez esteja faltando instanciar algum objeto
GOSTEI 0
Raylan Zibel

Raylan Zibel

06/12/2016

Tudo bem ter essa linha depois do salvar/commit:
despesa = new Despesa();

Porém "despesa" precisa ser instanciada antes de ser usada também. Aqui parece que ela não foi ainda:

public void SalvaDespesa(){
 
        usuario = despesadao.retornaUsuario(idUsuarioSession.getCpf());
        despesa.setUsuario(usuario);
GOSTEI 0
POSTAR