Java.lang.NullPointerException

6 respostas
B

if(UsuarioAutenticado.getLoginUsuario().equals(viewHelper.getLoginUsuario())){

return "/menuGeral.jsf";
	}
	else {	
		
		return "/index.jsf";
	}

por favor ajuda, tenho algumas decisões no meu código onde se o login for igual ele retorna para o menu principal do contrário retorna para o index, e quando isso aconteci da um erro de java.lang.NullPointerException porque está null meu objeto mais quando faço o direcionamento não estou utilizando esse objeto, não entendo o porque do erro

6 Respostas

guivirtuoso

Ou
UsuarioAutenticado

Ou
viewHelper

Estão nulos.

Provavelmente você vai ter que incrementar seu IF.
Algo tipo

if(UsuarioAutenticado != null && viewHelper != null && UsuarioAutenticado.getLoginUsuario().equals(viewHelper.getLoginUsuario())){
...
} else {
...
}

Tem forma mais elegante de fazer isso… mas p/ voce entender o que esta ocorrendo acho que já basta.
Abs

Ah e a explicação claro… NullPointerException ocorre sempre que você tentar manipular um Objeto que está nulo.

No caso, se UsuarioAutenticado estiver nulo, ao tentar consumir o método getLoginUsuario(), ele irá disparar a exceção.

Obvio que essa exceção pode estar vindo de dentro do getLoginUsuario(), mas como você nao colocou o Log nem nada… estamos assumindo que o erro é nessa classe mesmo e nesse trecho que você está nos mostrando.

Abs

igomes

Voce utiliza o objeto para comparação, você pode verificar antes o estado do objeto, como != null.
Pode voce deve estar recebendo null pointer, pode tentar acessar o equals com uma referência nula.

B

então cara eu sei que tenho um objeto que está null, mas quando faço o return não estou utilizando esse objeto apenas retorno uma string

esse é o meu método completo

public String autenticarUsuario(){

Usuario UsuarioAutenticado = new Usuario();

String login = viewHelper.getLoginUsuario();

String senha = viewHelper.getSenhaUsuario();

try{

ConsultaUsuarioNoSistema logando = new ConsultaUsuarioNoSistema();

UsuarioAutenticado = logando.procurarUsuario(login,senha);

if(UsuarioAutenticado == null){

throw new Exception(Acesso negado, usuario ou senha não encontrado!);

}

}

catch(Exception e){

/*

Message message = new DefaultMessage(e.getMessage(), SeverityType.ERROR);

messageContext.add(e);
Message message = new DefaultMessage("{ALUNO_INSERIR_OK}");
		messageContext.add(message, aluno.getNome());

		*/
	}
	if(UsuarioAutenticado.getLoginUsuario().equals(viewHelper.getLoginUsuario())){
		
		return "/menuGeral.jsf";
	}
	else{
		
		//UsuarioAutenticado.setLoginUsuario("");
		return "/index.jsf";
	}
guivirtuoso

Ta mas pera lá… como que não está utilizando … o IF não tem que avaliar a sua expressão p/ saber onde vai entrar???

Claro que está usando…

Depois… o seu return… é outra história. O erro está no IF.
Abs

B

entendi obrigado. resolvi

o objeto de retorno quando null, setei 0 para os campos integer e “” para String

if(consultaUsuario == null){
		retorno.setIdUsuario(0);
		retorno.setLoginUsuario("");
		retorno.setNivelUsuario(0);
		retorno.setNomeUsuario("");
		retorno.setRGCPFUsuario("");
		retorno.setSenhaUsuario("");
		
	}
	if (consultaUsuario != null){
		return consultaUsuario;
	}
	else{
		return retorno;
	}

/---------------------------------------------------------------------------------------------------------------------/

public String autenticarUsuario(){
	Usuario UsuarioAutenticado = new Usuario();
	String login = viewHelper.getLoginUsuario();
	String senha = viewHelper.getSenhaUsuario();
	try{
		ConsultaUsuarioNoSistema logando = new ConsultaUsuarioNoSistema();
		UsuarioAutenticado = logando.procurarUsuario(login,senha);
		
	}
	catch(Exception e){			
	}
	
	if(UsuarioAutenticado.getLoginUsuario().equals(viewHelper.getLoginUsuario())){
		
		return "/menuGeral.jsf";
	}
	else{
		
		
		return "/index.jsf";

}

igomes

Ou voce pode colocar isso direto no seu pojo, em vez de ficar dando um monte de set, coloca o padrao eles com esse valor, ai vc nem precisa dessa verificacao == null.

Criado 5 de fevereiro de 2016
Ultima resposta 5 de fev. de 2016
Respostas 6
Participantes 3