RESOLVIDO Erro setDadosConvenio() = >Exception occurred in target VM: <

Olá,
estou tendo dificuldade em resolver esse problema na aplicação. Quando debugo o código, aparece esse “erro” no método, e no console dá NullPointException. Já tentei fazer validações e testes, mas o problema ainda persiste. Se alguém puder me ajudar fico grato.

private void setDadosConvenio() {

    if (infCliente.getCdConv() != 0) {

        if (infCliente.getCliePercRecMinConv().compareTo(BigDecimal.ZERO) > 0) {
            percRecConv = infCliente.getCliePercRecMinConv();
            tpPercRecConv = 0;
        } else if (infCliente.getCliePercRecMaxConv().compareTo(BigDecimal.ZERO) > 0) {
            tpPercRecConv = 1;
            percRecConv = infCliente.getCliePercRecMaxConv();
        } else if (infCliente.getConvenio() != null) {
            if (infCliente.getConvenio().getPercRecMinConv().compareTo(BigDecimal.ZERO) > 0) {
                tpPercRecConv = 0;
                percRecConv = infCliente.getConvenio().getPercRecMinConv();
            } else {
                tpPercRecConv = 1;
                percRecConv = infCliente.getConvenio().getPercRecMaxConv();
            }
        }

        if (percRecConv.compareTo(BigDecimal.ZERO) == 0 && infCliente.isRecebtoVlrSubsidio()) {
            JOptionPane.showMessageDialog(this, "Percentual minímo ou máximo do convênio ou conveniado não defindo");
        }

        isClienteConvenioBloqValido();

        if (infCliente.getConvHabilitado() == 1) {
            infCliente.setDsConv("DESABILITADO");
            infCliente.setCdConv(0);
            infCliente.setVlrCred(BigDecimal.ZERO);
            infCliente.setVlrSaldo(BigDecimal.ZERO);
            jtxtConvenio.setText("DESABILITADO");
            jtxtCodFidel.setText(infCliente.getNrCartao());
            jtxtCodFidel.setToolTipText(infCliente.getNrCartao());
            jtxtCodFidel.setEnabled(false);
            jlblTpCliente.setEnabled(false);
            if (jcmbFormaPGTO.isEnabled()) {

                try {
                    if (servico.isMoeda(condPagtos.get(ixCondicaoPagamento).getCdFrmPgto(), Moeda.CONVENIO.ordinal())) {
                        JOptionPane.showMessageDialog(this, "Convênio desabilitado. O recebimento em convênio será barrado no PDV.");
                    }
                } catch (AplicacaoException ex) {
                    JOptionPane.showMessageDialog(this, "Não foi possível verificar moeda de pagamento : " + ex.getMessage());
                }
            }
        } else if (("1").equals(infCliente.getConvenio().getStsCred()) || "1".equals(infCliente.getStsCred())) {
            infCliente.setDsConv("VENDA CONVÊNIO BLOQUEADA");
            infCliente.setCdConv(0);
            infCliente.setDsConv("");
            infCliente.setVlrCred(BigDecimal.ZERO);
            infCliente.setVlrSaldo(BigDecimal.ZERO);
            jtxtConvenio.setText("VENDA CONVÊNIO BLOQUEADA");
            jtxtTotSaldoConvenio.setText("0");
            jtxtTotVlrConvenio.setText("0");
            jtxtConvenio.setToolTipText(jtxtConvenio.getText());
            jtxtCodFidel.setText(infCliente.getNrCartao());
            jtxtCodFidel.setToolTipText(infCliente.getNrCartao());
            jtxtCodFidel.setEnabled(false);
        } else {
            if (infCliente.getNrCartao() != null) {

                jtxtCodFidel.setText(infCliente.getNrCartao().trim());
                jtxtCodFidel.setToolTipText(infCliente.getNrCartao().trim());
            }

            if (infCliente.getDsConv().length() >= 24) {
                jtxtConvenio.setText(infCliente.getDsConv().substring(0, 24));
            } else {
                jtxtConvenio.setText(infCliente.getDsConv());
            }
            jtxtConvenio.setText(jtxtConvenio.getText() + " | " + "Dia Fat: " + infCliente.getDiaFechamento());
            jtxtConvenio.setToolTipText(infCliente.getDsConv() + " | " + "Dia Fat: " + infCliente.getDiaFechamento());

            if (infCliente.getVlrCred().compareTo(BigDecimal.ZERO) > 0) {
                jlblSaldoDisponivel.setText(Utils.formatoNR.format(infCliente.getVlrSaldo()));
            } else {
                jlblSaldoDisponivel.setText("Ilimitado");
            }

            jtxtCodFidel.setEnabled(false);
        }
    } else if ((infCliente.getCdConv() == 0) && (infCliente.getNrCartao() != null) && (!infCliente.getNrCartao().equals(""))) {
        jtxtCodFidel.setText(infCliente.getNrCartao().trim());
        jtxtCodFidel.setToolTipText(infCliente.getNrCartao().trim());
        jtxtCodFidel.setEnabled(false);
    } else if ((infCliente.getNrCartao() == null) || (infCliente.getNrCartao() != null && infCliente.getNrCartao().equals(""))) {
        jtxtCodFidel.setText("");
        jtxtCodFidel.setToolTipText("");
    }
}

Código de onde dá o erro:

private void PreencheInfCliente(int i) {
    if (("").equals(jtxtCodCliente.getText()) && ("").equals(jtxtCodFidel.getText())) {
        return;
    }

    Collection<ClienteOrcamento> clientes = new ArrayList<ClienteOrcamento>();

    try {

        if (i == 1) {
            String codCliente = jtxtCodCliente.getText();//criar uma lista para retornar
            clientes = servico.getClienteOrcamento(RegistryOrcamento.getEmpresaAtual().getCdEmp(), codCliente, false);
        } else if (i == 2) {
            String codFidel = jtxtCodFidel.getText();
            clientes = servico.getClienteOrcamento(RegistryOrcamento.getEmpresaAtual().getCdEmp(), codFidel, true);
        }
    } catch (NumberFormatException ex) {
        TelaError.exibirMensagem(this, "erro na conversao numerica", ex.getMessage());
    } catch (AplicacaoException e) {
        TelaError.exibirMensagem(this, e);
        return;
    }

    if (!clientes.isEmpty()) {
        flagMostrouMensagem = false;
        if (clientes.size() == 1) {
            infCliente = clientes.iterator().next();
        } else {
            PopUpConvenio popConv = new PopUpConvenio(this, true, (List<ClienteOrcamento>) clientes);
            popConv.setVisible(true);
            infCliente = popConv.getCliConv();
        }
    }

    if (infCliente != null && (infCliente.getCdCli() != null && !("").equals(infCliente.getCdCli()))) {

        String cpf = infCliente.getCgcCpf().trim().replaceAll("\\D", "");

        if (parEmpresa.isUtilizaContrPtsExterno() && CNP.isValidCPF(cpf)) {
            pesquisaClienteFidelidade(cpf, true);
        }

        //validaCpfInvalido();
        if (infCliente.getStsCli() == 1) {
            JOptionPane.showMessageDialog(this, "Cliente " + infCliente.getRzCli() + " está inativo!\nEntre em contato com o Departamento Financeiro.", "Atenção!", JOptionPane.INFORMATION_MESSAGE);
            jtxtCodFidel.setText("");
            jtxtCodFidel.setToolTipText("");
            jtxtCodVend.transferFocus();
            return;
        }

        infCliente.getPessoa();
        if (parAplicacao.isFlagNaoPermiteCupomOrcCnpj() && infCliente.getPessoa() == 2) {
            JOptionPane.showMessageDialog(this, "Não e permitido venda para pessoa tipo jurídica!", "Atenção", JOptionPane.INFORMATION_MESSAGE);
        }

        if (infCliente.getTelefones() != null && infCliente.getTelefones().size() > 0) {
            addTelefones(infCliente.getTelefones());
        }

        // valida excesso de compra fidelidade
        if (!validaLimiteVendaFidelidade()) {
            return;
        }

        if (infCliente.getRzCli() != null) {
            jtxtNomeCli.setText(infCliente.getRzCli().trim());
        }
        jtxtNomeCli.setToolTipText(infCliente.getRzCli().trim());

        String endCli, comp, bairro, dsCid, uf, pontoRef;

        endCli = infCliente.getEndCli() == null ? "" : infCliente.getEndCli().trim();
        comp = infCliente.getComplemento() == null ? "" : infCliente.getComplemento().trim();
        bairro = infCliente.getBairro() == null ? "" : infCliente.getBairro().trim();
        dsCid = infCliente.getDsCid() == null ? "" : infCliente.getDsCid().trim();
        uf = infCliente.getUf() == null ? "" : infCliente.getUf().trim();
        pontoRef = infCliente.getPontoRef() == null ? "" : infCliente.getPontoRef().trim();

        jtxtEnderecoEntrega.setText(endCli + ", NR " + infCliente.getNumero() + " - " + comp + " - " + bairro + " - " + dsCid + " - " + uf + " - " + pontoRef);

        if (infCliente.getTelefones() == null || infCliente.getTelefones().isEmpty()) {

            if (jTblTelefones.getModel() instanceof TableTelefone) {
                ((TableTelefone) jTblTelefones.getModel()).clear();
            } else {
                DefaultTableModel modelo = Utils.clearTable(jTblTelefones);
                jTblTelefones.setModel(modelo);
            }

            if (infCliente.getTel() != null && !infCliente.getTel().isEmpty()) {

                List<Telefone> telefone = new ArrayList<>();
                Telefone fone = new Telefone();
                fone.setDddTelefone(infCliente.getDddTel());
                fone.setDsTelefone(infCliente.getTel());
                telefone.add(fone);
                addTelefones(telefone);
            }
        } else {
            addTelefones(infCliente.getTelefones());
        }

        jtxtEnderecoEntrega.setToolTipText(jtxtEnderecoEntrega.getText());
        jtxtCodCliente.setText(infCliente.getCdCli());
        jtxtConvenio.setText("");
        jtxtConvenio.setToolTipText("");
        jlblSaldoDisponivel.setText("0");

        // altera senha
        if (RegistryOrcamento.getServicoOnline() != null) {
            if (alterarSenha()) {
                return;
            }
        }

        // setando dados do convenio nos campos
        **_setDadosConvenio();_**

        if (!infCliente.getCdCli().equals(String.valueOf(cdCliPadrao)) && servicoOnline != null) {

            new WaitTaskImpl(null).executeNoShow();
        }

        atualizaDadosFidelidade();

        processaPontuacaoCliente();
      pontosExterno();
        limparCadItens();
        jtxtCodFidel.transferFocus();

        if (infCliente.isCrediario() && !infCliente.isStsCreCrediario()) {
            String msgBloq = infCliente.getObs() != null && !("").equals(infCliente.getObs()) ? infCliente.getObs() + "\n" : "";
            msgBloq += "Cliente com bloqueio de compras pelo Crediário e/ou não compra por Crediário.\nEntre em contato com o Departamento Financeiro.";
            msgBloq += "\nMotivo : " + infCliente.getMotivoBloqueioCrediario() + "-" + infCliente.getDescMotivoBloqueioCrediario();
            infCliente.setObs(msgBloq);
        }

        if (infCliente.isConveniado() && ("1").equals(infCliente.getStsCred())) {
            JOptionPane.showMessageDialog(this, "Atenção\nCliente Bloqueado no convênio.", "Atenção", JOptionPane.INFORMATION_MESSAGE);
        }

        if ((((infCliente.getInstrucoes() != null) && (!("").equals(infCliente.getInstrucoes()))) || ((infCliente.getObs() != null) && (!("").equals(infCliente.getObs())))) && orcamento == null || (infCliente.getListMsgCrm() != null && infCliente.getListMsgCrm().size() > 0)) {
            if (!flagMostrouMensagem) {
                flagMostrouMensagem = true;
                mostraMensagem();
            }
        }
        if (("").equals(jtxtCodFidel.getText())) {
            jtxtCodFidel.setEnabled(true);
            jtxtCodFidel.requestFocus();
        }
        if (!flagIsQualificado) {
            flagIsQualificado = true;
            qualificarCli(infCliente);
        }
        ParametroOrcamento.cleanInstance();

    } else {
        String cpf = jtxtCodFidel.getText().trim().replaceAll("\\D", "");
        if (parEmpresa.isUtilizaContrPtsExterno() && CNP.isValidCPF(cpf)) {
            pesquisaClienteFidelidade(cpf); // cadastra cliente gestao
            validaFidelidade(); // consulta novamente
        } else {
            if (!("").equals(jtxtCodFidel.getText()) && cartaoImp.isExisteCartao() && !cartaoImp.isStsCartao()) {
                JOptionPane.showMessageDialog(this, "Cartão já utilizado.\nSolite autorização ao gerente para incluir uma nova venda.", "Atenção", JOptionPane.INFORMATION_MESSAGE);

                int codVendAut = 0;
                if (parEmpresa.isValidarUsuarioPorBiometria()) {
                    codVendAut = Digital.getInstance().getUsuarioByDigital(RegistryOrcamento.getUsuariosBio());
                    if (codVendAut == 0) {
                        jtxtProdQtd.requestFocus(true);
                        JOptionPane.showMessageDialog(this, "Funcionário não localizado");
                        return;
                    }
                } else {
                    TelaLoginUsuario telLoginUsuario = new TelaLoginUsuario(this, 0);
                    telLoginUsuario.setVisible(true);
                    this.setFocusable(true);
                    codVendAut = telLoginUsuario.codVendAut;
                }
                if (codVendAut != 0) {
                    try {
                        if (!servico.getUsuarioAcesso(codVendAut, RegistryOrcamento.getEmpresaAtual().getFilial().getId(), 65)) {
                            JOptionPane.showMessageDialog(this, "Usuário sem acesso á este procedimento.", "Atenção", JOptionPane.INFORMATION_MESSAGE);
                            jtxtCodFidel.setText("");
                            jtxtCodFidel.setToolTipText("");
                            return;
                        }
                    } catch (AplicacaoException e) {
                        TelaError.exibirMensagem(this, e);
                        return;
                    }
                } else {
                    jtxtCodFidel.setText("");
                    jtxtCodFidel.setToolTipText("");
                }

            } else {
                JOptionPane.showMessageDialog(this, "Cliente ou cartão não localizado ou cartão inválido.", "Atenção", JOptionPane.INFORMATION_MESSAGE);
                jtxtCodFidel.grabFocus();
                jtxtCodFidel.setText("");
                jtxtCodFidel.setToolTipText("");
            }

            //if()
            jtxtConvenio.setText("");
            jtxtConvenio.setToolTipText("");
            jtxtEnderecoEntrega.setText("");
            jtxtEnderecoEntrega.setToolTipText("");
            jlblSaldoDisponivel.setText("");
            jtxtPtoAtual.setText("");
            jtxtPtoVenda.setText("");
            jtxtPtoTotal.setText("");
            jtxtCodCliente.setText("" + cdCliPadrao);
            jtxtNomeCli.setText("CONSUMIDOR FINAL");
            jtxtNomeCli.setToolTipText("");
        }
    }
}

Os códigos são grandes, mas aonde dá o erro está em negrito e itálico.
A stack trace é a seguinte:
Exception in thread “AWT-EventQueue-2” java.lang.NullPointerException
at br.itecbrazil.orcamento.client.apresentacao.TelaOrcamento.setDadosConvenio(TelaOrcamento.java:570)
at br.itecbrazil.orcamento.client.apresentacao.TelaOrcamento.PreencheInfCliente(TelaOrcamento.java:2320)

O que tem na linha 570 do arquivo TelaOrcamento.java?
NullPointerException indica que você está tentando acessar um membro de um objeto que não foi inicializado.

Tem isso aki:

  if (infCliente.getConvenio() != null) {
                if (infCliente.getConvenio().getPercRecMinConv().compareTo(BigDecimal.ZERO) > 0) {
                    tpPercRecConv = 0;
                    percRecConv = infCliente.getConvenio().getPercRecMinConv();
                } else {
                    tpPercRecConv = 1;
                    percRecConv = infCliente.getConvenio().getPercRecMaxConv();
                }
            }

Resolvido!!!
Fiz um if pra sair do método, já que o método que o objeto chama é nulo.
E resolveu.