Ajuda com NullPointer

7 respostas
A

Ae galera, eu sei que é um tanto simples isso, mas estou recebendo o NullPointerException, e eu já testei todas as variáveis. Nenhuma está vazia.
Vem nessa linha:

pesqWEB.adicionaItemPesquisa(PesquisaWeb.EDITORA, getTermo(), 0, true );

Só que para confirmar tudo, eu dei um sysout e saiu tudo certo!

System.out.println("PesquisaWeb - " + PesquisaWeb.EDITORA + " getTermo() - " + getTermo());
pesqWEB.adicionaItemPesquisa(PesquisaWeb.EDITORA, getTermo(), 0, true );

E imprimiu tudo certinho!
Agora, onde está o erro?

O código inteiro caso precisem:

IModel model = null;
            String nav = null;
            PesquisaWeb pesqWEB = null;
            try {
                model = BaseModelFactory.getFactory().getIModel();
                setCampoPesquisa("editora");
                setTermo(recuperarVariavelRequest("editora").toString());
                System.out.println("Antes do pesqWEB: PesquisaWeb - " + PesquisaWeb.EDITORA + " getTermo - " + getTermo());
                pesqWEB.adicionaItemPesquisa(PesquisaWeb.EDITORA, getTermo(), 0, true );
                listaTituloPes = model.pesquisarFullText(PathLucene.getPathIndices(), pesqWEB);
                nav = PAG_RESULTADO;
            } catch (Exception exc) {
                adicionarMensagemExcecao(exc, "Erro ao pesquisar editoras (Lucene)");
                nav = PAG_EXCECAO;
            }
            return nav;

7 Respostas

rmendes08

Você esqueceu da principal variável, aquela sobre o qual o método é chamado. Experimenta imprimir pesqWeb.

rmendes08

Ah, e ao invés de ficar usando sysout, faz uma força para aprender a usar o debugador da sua IDE.

B

Só para ajudar, o stacktrace com a exceção contem o nome do arquivo e o número da linha do código onde ocorreu o erro. Não precisa ficar procurando no código inteiro.

A

Foi pelo stacktrace que eu peguei essa linha, e quanto ao debug da IDE, é verdade, eu tenho que aprender mesmo a utiliza-lo, eu sei que o que eu faço é o jeito mais complicado, mas eu acabei acostumando a fazer teste de mesa!
Mas pode cre, vou imprimir a pesqWEB e ver o que rola!
Ai eu posto aqui!

B

Então:

pesqWEB.adicionaItemPesquisa(PesquisaWeb.EDITORA, getTermo(), 0, true ); Aqui temos no teu código:

pesqWEB
PesquisaWeb
getTermo()

PesquisaWeb não pode dar NullPointerException, pois supondo que a nomenclatura esteja correta, PesquisaWeb é uma classe, e você está acessando um membro static dela, e não um membro de instancia. Ou pode ser um Enum, que faz o mesmo.
getTermo() por si só não dá um NullPointerException, pois ele é um método da própria instância ou classe corrente. O que pode dar NPE é uma expressão dentro desse método, mas ela não está no topo desse stacktrace, então não é o problema.

O que resta é o pesqWEB, o único que pode dar NPE nessa linha.

G

pesqWeb é null, esse é o seu erro.

A

É, era isso mesmo! O faltavam alguns paramêtros e coisas assim! haha…
Obrigado a todos que ajudaram aqui!
Abraços.

Criado 25 de novembro de 2009
Ultima resposta 25 de nov. de 2009
Respostas 7
Participantes 4