Nullpointer

10 respostas
Q

GALERA ME AJUDEM.
estou com um codigo que está dando nullpointer numa linha e não sei como corrigi-lo.
heis o codigo.

public void verificarModemComodato(Instance newInstance, Instance tbnInstance, Instance idcInstance) 
    	throws Exception {
    	//PJ718 - Foguete Gugu - INICIO
        /*log.info("Chamando o método includeAssociationProduct para o instance");
        Element.includeAssociationProduct("Modem em Comodato", "Combinação de Produtos", instance.getElements());*/
        
        //caso nao haja modem na campanha, remove o modem e seus parametros
        if(tbnInstance != null || idcInstance!= null){
          
          /* 806 :: verifica se o turbonet eh maior que 5 mega para nao iserir modem comodato */
          boolean isTurbonetMaior5Mega = false;
          Iterator iTbInstanceElements = tbnInstance.getElements().iterator();<- [b] null pointer nessa linha (tbnInstance)[/b]
          while (iTbInstanceElements.hasNext()) {
              InstanceElement insElement = (InstanceElement)iTbInstanceElements.next();
              Element element = insElement.getElement();
              if (element.getType().equals("T")) {
                  Iterator iParams = element.getParameters().iterator();
                  while (iParams.hasNext()) {
                      ElementParam elemParam = (ElementParam)iParams.next();
                      if (elemParam.getName().equalsIgnoreCase("download")) {
                          if (elemParam.getMaxValue().floatValue() > 5120) {
                          isTurbonetMaior5Mega = true;
                            break;
                          }
                      }
                  }
              }
          }

10 Respostas

pintofree

coloca masi uma validacao mais ou menos assim

if( tbnInstance.getElements() != null)
{

}
B

tbnInstance está nulo? Se está nulo, por que estás acessando um método dele?

Q

então a questão é que não fui eu que desenvolvi o codigo, eu dou suporte do mesmo.
como seria resolvido isso.
detalhe eu sou amador em java.

Q

pintofree vou tentar a tua sujestão.

Q

pintofree, não deu certo.

pintofree

Cara, posta o novo codigo, e tmb posta a mesagem de erro completa, isso é importante pra que a gente possa te ajudar

Q

Codigo

public void verificarModemComodato(Instance newInstance, Instance tbnInstance, Instance idcInstance) 
    	throws Exception {
    	//PJ718 - Foguete Gugu - INICIO
        /*log.info("Chamando o método includeAssociationProduct para o instance");
        Element.includeAssociationProduct("Modem em Comodato", "Combinação de Produtos", instance.getElements());*/
        
        //caso nao haja modem na campanha, remove o modem e seus parametros
        if(tbnInstance.getElements() != null || idcInstance!= null){
          
          /* 806 :: verifica se o turbonet eh maior que 5 mega para nao iserir modem comodato */
          boolean isTurbonetMaior5Mega = false;
          Iterator iTbInstanceElements = tbnInstance.getElements().iterator();
          while (iTbInstanceElements.hasNext()) {
              InstanceElement insElement = (InstanceElement)iTbInstanceElements.next();
              Element element = insElement.getElement();
              if (element.getType().equals("T")) {
                  Iterator iParams = element.getParameters().iterator();
                  while (iParams.hasNext()) {
                      ElementParam elemParam = (ElementParam)iParams.next();
                      if (elemParam.getName().equalsIgnoreCase("download")) {
                          if (elemParam.getMaxValue().floatValue() > 5120) {
                          isTurbonetMaior5Mega = true;
                            break;
                          }
                      }
                  }
              }
          }

Erro no Eclipse

10/07/05 17:29:49 java.lang.NullPointerException
10/07/05 17:29:49 	at com.gvt.servlet.store.ChooseElements.verificarModemComodato(ChooseElements.java:1923)
10/07/05 17:29:49 	at com.gvt.servlet.store.ChooseElements.processPost(ChooseElements.java:923)
10/07/05 17:29:49 	at com.gvt.servlet.store.ChooseElements.doPost(ChooseElements.java:390)
pintofree

Amigo, vc tem q verificar se o objeto em si nao esta nulo antes de verificar se algum atributo dele está.
Faça assim

//caso nao haja modem na campanha, remove o modem e seus parametros
        if(tbnInstance!= null && tbnInstance.getElements() != null && idcInstance!= null){
     

          }
Q

aaaaaaaa!!!
waw.
Valeu pintofree.
funcionou.
Valeu muito brigado

Alexandre_Saudate

Cara, só uma dica…

Se vc for inserir código direto das regras de negócio da sua empresa, tenta mascarar algumas informações, OK ? Lendo o código, deu pra ver que se o turbonet for maior que 5 megas, não se aplica comodato, certo? Só que se eu descobrir alguma falha na sua lógica, acho meios de burlar isso, entendeu?

[]´s

Criado 5 de julho de 2010
Ultima resposta 5 de jul. de 2010
Respostas 10
Participantes 4