0
Calling any method in any null reference will always result in an exception. How could I fix this?
public class frmStatusAprovacaoGeral implements AdapterInterface{
    @Override
    public void back(EntityWrapper arg0, Activity arg1) {
    }
    @Override
    public void start(Task arg0, EntityWrapper arg1, Activity arg2) {
        // Pega Entity wrapper do Processo
        WFProcess process = arg2.getProcess();
        NeoObject obj = process.getProcessEntity();
        EntityWrapper ewobj = new EntityWrapper(obj);
        //tenha a lista de parcelas 
        Long numeroParcelas;
        try {
            numeroParcelas = (Long) ewobj
                    .findValue("contratoEformPosEscolha.pagamento.nroParcelas");
        } catch (Exception e) {
            numeroParcelas = (long) 1;
        }
                //estou pegando o campo aprovacaoGerencia para saber se ela foi aprovada
                List<NeoObject> listaParcelasGerencia = (List<NeoObject>) ewobj
                .findValue("frmParcelasAprovacaoGerencia");
                //estou pegando o campo aprovacaoAprovadorExtra para saber se ela foi aprovada
                List<NeoObject> listaParcelasExtraUm = null;
                try{
                listaParcelasExtraUm = (List<NeoObject>) ewobj
                        .findValue("frmParcelasAprovadorExtraUm");
                }catch(Exception e){
                    Log.error(e);
                }
                //estou pegando o campo aprovacaoAprovadorExtra2 para saber se ela foi aprovada 
                List<NeoObject> listaParcelasExtraDois = null;
                try{
                    listaParcelasExtraDois = (List<NeoObject>) ewobj
                        .findValue("frmParcelasAprovadorExtraDois");
                } catch (Exception e){
                    Log.error(e);
                }
                //estou pegando o campo aprovacaoAprovadorExtra3 para saber se ela foi aprovada 
                List<NeoObject> listaParcelasExtraTres = null;
                try {
                    listaParcelasExtraTres = (List<NeoObject>) ewobj
                            .findValue("frmParcelasAprovadorExtraTres");
                } catch (Exception e) {
                    Log.error(e);
                }
                //estou adicionando as respostas na listaParcelas
                List<NeoObject> ListaParcelaAtualGeral = (List<NeoObject>) ewobj
                .findValue("contratoEformPosEscolha.listaParcelas");
        for (long i = 0; i < numeroParcelas; i++) {
            NeoObject parcelaAtualGeral = ListaParcelaAtualGeral.get((int) i);
            EntityWrapper ewParcelaAtualGeral = new EntityWrapper(parcelaAtualGeral);
            //gerência
            //----------------------------------------------------------------------
            NeoObject parcelaAtualGerencia = listaParcelasGerencia.get((int) i);
            EntityWrapper ewParcelaAtual = new EntityWrapper(parcelaAtualGerencia);
            boolean aprovacaoGerencia = (boolean) ewParcelaAtual.findValue("aprovacaoGerencia");    
            ewParcelaAtualGeral.setValue("aprovacaoGerencia", aprovacaoGerencia);
            //----------------------------------------------------------------------
            //extra um
            //Chamar qualquer método em qualquer referência nula sempre resultará em uma exceção. 
            //Teste se o objeto é nulo primeiro:
            //----------------------------------------------------------------------
            if ( (listaParcelasExtraUm != null) || !listaParcelasExtraUm.isEmpty()){
                NeoObject parcelaAtualExtraUm = listaParcelasExtraUm.get((int) i);
                EntityWrapper ewParcelaAtualExtraUm = new EntityWrapper(parcelaAtualExtraUm);
                boolean aprovacaoAtualExtra1 = (boolean) ewParcelaAtualExtraUm.findValue("aprovacaoAprovadorExtra");    
                ewParcelaAtualGeral.setValue("aprovacaoAprovadorExtra", aprovacaoAtualExtra1);
            }
            //----------------------------------------------------------------------
            //extra dois
            //----------------------------------------------------------------------
            if ( (listaParcelasExtraDois != null) || !listaParcelasExtraDois.isEmpty()){
                NeoObject parcelaAtualExtraDois = listaParcelasExtraDois.get((int) i);
                EntityWrapper ewParcelaAtualExtraDois = new EntityWrapper(parcelaAtualExtraDois);
                boolean aprovacaoAtualExtra2 = (boolean) ewParcelaAtualExtraDois.findValue("aprovacaoAprovadorExtra2"); 
                ewParcelaAtualGeral.setValue("aprovacaoAprovadorExtra2", aprovacaoAtualExtra2);
            }
            //----------------------------------------------------------------------
            //extra três
            //----------------------------------------------------------------------
            if ( ( listaParcelasExtraTres != null) || !listaParcelasExtraTres.isEmpty()){
                NeoObject parcelaAtualExtraTres = listaParcelasExtraTres.get((int) i);
                EntityWrapper ewParcelaAtualExtraTres = new EntityWrapper(parcelaAtualExtraTres);
                boolean aprovacaoAtualExtra3 = (boolean) ewParcelaAtualExtraTres.findValue("aprovacaoAprovadorExtra3"); 
                ewParcelaAtualGeral.setValue("aprovacaoAprovadorExtra3", aprovacaoAtualExtra3);
            }
            //----------------------------------------------------------------------
            PersistEngine.persist(parcelaAtualGeral);
        }   
    }   
    @Nullable
    Long ValidaCampo() {
        return null;
    }
}
						
Any of the List can come empty or null, for example : frmParcelasAprovarExtraUm
– Harry
Do the answers given answer your question? Is there anything any of us can improve? If you have, please leave a comment.
– Jéf Bueno
Has any response helped solve the problem and can address similar questions from other users? If so, make sure to mark the answer as accepted. To do this just click on the left side of it (below the indicator of up and down votes).
– Sorack