Erro ao retornar imagem do banco

Tenho a seguinte estrutura no form de Cadastro de Empresa, que é para mostrar os dados que foram cadastrados da empresa, a imagem foi salva corretamente, mas na hora de setar no Label eu não sei o que está acontecendo, só está retornando NullPointerException. O que eu posso estar fazendo de errado?

Obs: estou apenas salvando a imagem no banco, não estou salvando-a em diretório, seu tipo no banco de dados é o bytea.

public void mostraDados()
{
    //recupera os dados do banco
    Empresa e = ctremp.getEmpresa();

    //seta os dados na view
    txtCodigo.setText(String.valueOf(e.getCodigo()));
    txtCodigo.setHorizontalAlignment(txtCodigo.CENTER);

    txtNome.setText(e.getNome());
    txtAtividade.setText(e.getAtividade());
    txtCNPJ.setText(e.getCnpj());
    txtTelefone.setText(e.getTelefone());
    txtCelular.setText(e.getCelular());
    txtCEP.setText(e.getCep());
    txtEndereco.setText(e.getEndereco());
    txtBairro.setText(e.getBairro());
    txtNumero.setText(e.getNumero());
    // lblLogo.setIcon(new ImageIcon(imagem));
    ManipularImagem.exibirImagemLabel(e.getFoto(), lblLogo);
}

Classe DAO Empresa

public Empresa getEmpresa()
{
        Empresa e = null;
        DAOUf daoUf = new DAOUf();
        DAOCidade daoCidade = new DAOCidade();

        String sql = "select * from empresa";
        ResultSet rs = Banco.getCon().consultar(sql);
        try
        {
            if (rs.next())
            {
                e = new Empresa(rs.getInt("emp_cod"),
                        rs.getString("emp_nome"),
                        rs.getString("emp_atividade"),
                        rs.getString("emp_cnpj"),
                        rs.getString("emp_telefone"),
                        rs.getString("emp_celular"),
                        rs.getString("emp_cep"),
                        rs.getString("emp_endereco"),
                        rs.getString("emp_bairro"),
                        rs.getString("emp_numero"),
                        daoCidade.getCidadeCodigo(rs.getInt("cid_cod")),
                        daoUf.getUfCodigo(rs.getInt("uf_cod")),
                        rs.getBytes("emp_foto"));
            }
        } catch (SQLException ex)
        {
            JOptionPane.showMessageDialog(null, ex.getMessage());
            e = null;
        }

        return e;
}

ManipularImagem - método

public static void exibirImagemLabel(byte[] minhaimagem, javax.swing.JLabel label)
{

    //primeiro verifica se tem a imagem
    //se tem convert para inputstream que é o formato reconhecido pelo ImageIO
    if (minhaimagem != null)
    {
        InputStream input = new ByteArrayInputStream(minhaimagem);
        try
        {
            BufferedImage imagem = ImageIO.read(input);
            label.setIcon(new ImageIcon(imagem));
        } catch (IOException ex)
        {
        }

    } else
    {
        label.setIcon(null);

    }

}

Posta o StackTrace completo da exceção.

1 curtida

Segue imagem do StackTrace

@staroski
Pelo que eu percebi quando depurei o código, a variável do método ManipularImagem está recebendo null, por isso o NullPointerException, mas o input que ta no read(input) está com o valor atribuído do InputStream. Não sei porque a variável imagem recebe null.

InputStream input = new ByteArrayInputStream(minhaimagem);
BufferedImage imagem = ImageIO.read(input);

Postar o StackTrace como imagem é sacanagem, próxima vez posta o texto.

Seu erro está acontecendo na linha 356 do arquivo frmCadEmpresa.java, mais precisamente no método mostraDados.

Como você não postou o código completo da classe, não sei o que há na linha 356, mas é lá que você está tentando manipular um objeto não inicializado.

Achei que vce iria preferir na imagem, por isso postei como imagem, desculpa. vou postar o código completo

public class frmCadEmpresa extends javax.swing.JDialog
{

    BufferedImage imagem;
    boolean primeiroAcesso;
    CtrEmpresa ctremp = new CtrEmpresa();
    CtrUf ctruf = new CtrUf();
    CtrCidade ctrcid = new CtrCidade();

    ArrayList<Uf> listaUfs = new ArrayList<>();
    ArrayList<Cidade> listaCidades = new ArrayList<>();
    Empresa e;

    ImageIcon iconeSucesso = new ImageIcon("src/imagens/sucesso.png"); // sucesso
    ImageIcon iconeErro = new ImageIcon("src/imagens/erro.png");      //  erro
    ImageIcon iconeWarning = new ImageIcon("src/imagens/warning.png"); // warning
    ImageIcon iconePergunta = new ImageIcon("src/imagens/question.png");  // pergunta
    ImageIcon iconeInformation = new ImageIcon("src/imagens/information.png");  // informação

    /**
     * Creates new form frmCadEmpresa
     *
     * @param parent
     * @param modal
     * @param op
     */
    public frmCadEmpresa(java.awt.Frame parent, boolean modal, int op)
    {
        super(parent, modal);
        initComponents();

        primeiroAcesso = false;

        if (op == 0)
        {
            primeiroAcesso = true;
            btnAlterar.setEnabled(false);
            btnCancelar.setEnabled(false);
            carregaComboboxEstados();

        } else
        {
            empresaJaCadastrada();
        }

    }

    private void empresaJaCadastrada()
    {
        estadoInicial();

        if (ctremp.buscaEmpresa())
        {
            mostraDados();
            estadoAlterar();
        }
    }

    private void carregaComboboxEstados()
    {
        listaUfs = ctruf.getListaTodosUfs();
        cbbUf.removeAllItems();

        for (int i = 0; i < listaUfs.size(); i++)
        {
            cbbUf.addItem(listaUfs.get(i));
        }
    }

    public void carregaComboboxCidades()
    {
        Uf estado = (Uf) cbbUf.getSelectedItem();
        listaCidades = ctrcid.RecuperaCidades(estado.getCod());

        cbbCidade.removeAllItems();

        for (int i = 0; i < listaCidades.size(); i++)
        {
            cbbCidade.addItem(listaCidades.get(i));
        }
    }

    public void mostrarEstadoDados(Uf estado)
    {
        Uf u = ctruf.RecuperaEstado(estado.getCod());
        cbbUf.removeAllItems();
        cbbUf.addItem(u);
    }

    public void mostrarCidadeDados(Cidade cidade) // Recupera a cidade do banco pra mostrar no CBB
    {
        Cidade cid = ctrcid.getCidadeCodigo(cidade.getCod());
        cbbCidade.removeAllItems();
        cbbCidade.addItem(cid);
    }

    public void estadoInicial()
    {

        btnSalvar.setEnabled(false);
        btnAlterar.setEnabled(false);
        btnCancelar.setEnabled(true);
        btnPesquisaCEP.setEnabled(false);
        btnPesquisarImagem.setEnabled(false);

        txtCodigo.setEnabled(false);
        txtNome.setEnabled(false);
        txtAtividade.setEnabled(false);
        txtCNPJ.setEnabled(false);
        txtTelefone.setEnabled(false);
        txtCelular.setEnabled(false);
        txtCEP.setEnabled(false);
        txtEndereco.setEnabled(false);
        txtBairro.setEnabled(false);
        txtNumero.setEnabled(false);
        txtComplemento.setEnabled(false);
        lblLogo.setEnabled(false);

        cbbCidade.setEnabled(false);
        cbbUf.setEnabled(false);
    }

    public void cancelar()
    {
        btnSalvar.setVisible(false);
        btnAlterar.setEnabled(true);
        btnCancelar.setEnabled(true);
        btnPesquisaCEP.setEnabled(false);
        btnPesquisarImagem.setEnabled(false);

        txtCodigo.setEnabled(false);
        txtNome.setEnabled(false);
        txtAtividade.setEnabled(false);
        txtCNPJ.setEnabled(false);
        txtTelefone.setEnabled(false);
        txtCelular.setEnabled(false);
        txtCEP.setEnabled(false);
        txtEndereco.setEnabled(false);
        txtBairro.setEnabled(false);
        txtNumero.setEnabled(false);
        txtComplemento.setEnabled(false);
        lblLogo.setEnabled(false);

        cbbCidade.setEnabled(false);
        cbbUf.setEnabled(false);
    }

    public void estadoAlterarando()
    {
        btnSalvar.setVisible(true);
        btnSalvar.setEnabled(true);
        btnAlterar.setEnabled(false);
        btnCancelar.setEnabled(true);
        btnPesquisaCEP.setEnabled(true);
        btnPesquisarImagem.setEnabled(true);

        txtCodigo.setEnabled(false);
        txtNome.setEnabled(true);
        txtAtividade.setEnabled(true);
        txtCNPJ.setEnabled(true);
        txtTelefone.setEnabled(true);
        txtCelular.setEnabled(true);
        txtCEP.setEnabled(true);
        txtEndereco.setEnabled(true);
        txtBairro.setEnabled(true);
        txtNumero.setEnabled(true);
        txtComplemento.setEnabled(true);
        lblLogo.setEnabled(true);

        cbbCidade.setEnabled(true);
        cbbUf.setEnabled(true);
    }

    public void estadoAlterar()
    {

        btnSalvar.setVisible(false);
        btnAlterar.setEnabled(true);
        btnCancelar.setEnabled(true);
        btnPesquisaCEP.setEnabled(false);
        btnPesquisarImagem.setEnabled(false);

        txtCodigo.setEnabled(false);
        txtNome.setEnabled(false);
        txtAtividade.setEnabled(false);
        txtCNPJ.setEnabled(false);
        txtTelefone.setEnabled(false);
        txtCelular.setEnabled(false);
        txtCEP.setEnabled(false);
        txtEndereco.setEnabled(false);
        txtBairro.setEnabled(false);
        txtNumero.setEnabled(false);
        txtComplemento.setEnabled(false);
        lblLogo.setEnabled(false);

        cbbCidade.setEnabled(false);
        cbbUf.setEnabled(false);
    }

    public void estadoEdicao()
    {

        btnSalvar.setEnabled(true);
        btnAlterar.setEnabled(false);
        btnCancelar.setEnabled(true);
        btnPesquisaCEP.setEnabled(true);
        btnPesquisarImagem.setEnabled(true);

        txtCodigo.setEnabled(false);
        txtNome.setEnabled(true);
        txtAtividade.setEnabled(true);
        txtCNPJ.setEnabled(true);
        txtTelefone.setEnabled(true);
        txtCelular.setEnabled(true);
        txtCEP.setEnabled(true);
        txtEndereco.setEnabled(true);
        txtBairro.setEnabled(true);
        txtNumero.setEnabled(true);
        txtComplemento.setEnabled(true);
        lblLogo.setEnabled(true);

        cbbCidade.setEnabled(true);
        cbbUf.setEnabled(true);

        carregaComboboxEstados();
    }

    public void limpaTela()
    {
        txtCodigo.setText("");
        txtNome.setText("");
        txtAtividade.setText("");
        txtCNPJ.setText("");
        txtTelefone.setText("");
        txtCelular.setText("");
        txtCEP.setText("");
        txtEndereco.setText("");
        txtBairro.setText("");
        txtNumero.setText("");
        cbbUf.setSelectedIndex(-1);
        cbbCidade.setSelectedIndex(-1);
    }

    public void soLetras(java.awt.event.KeyEvent evt, javax.swing.JTextField jtf, int max_caracter)
    {
        if ((Character.isLetter(evt.getKeyChar()) || evt.getKeyChar() == ' ') && jtf.getText().length() < max_caracter)
        {
            evt.isConsumed();
        } else
        {
            evt.consume();
        }
    }

    public void soNumeros(java.awt.event.KeyEvent evt, javax.swing.JTextField jtf, int max_caracter)
    {
        if (Character.isDigit(evt.getKeyChar()) && jtf.getText().length() < max_caracter)
        {
            evt.isConsumed();
        } else
        {
            evt.consume();
        }
    }

    public String validaDados()
    {
        String valida = "";
        String cnpj = txtCNPJ.getText();
        CNPJ pj = new CNPJ(cnpj);

        if (txtNome.getText().equals(""))
        {
            valida = valida + "\nInforme um Nome";
            txtNome.setBorder(BorderFactory.createLineBorder(Color.RED));
        } else
        {
            txtNome.setBorder(BorderFactory.createLineBorder(Color.GRAY));
        }

        if (txtCNPJ.getText().equals("  .   .   /    -  "))
        {
            valida = valida + "\nInforme um CNPJ";
            txtCNPJ.setBorder(BorderFactory.createLineBorder(Color.RED));
        } else
        {
            txtCNPJ.setBorder(BorderFactory.createLineBorder(Color.GRAY));
        }

        if (txtTelefone.getText().equals("(  )     -    "))
        {
            valida = valida + "\nInforme um Telefone";
            txtTelefone.setBorder(BorderFactory.createLineBorder(Color.RED));
        } else
        {
            txtTelefone.setBorder(BorderFactory.createLineBorder(Color.GRAY));
        }

        if (txtEndereco.getText().equals(""))
        {
            valida = valida + "\nInforme um Endereço";
            txtEndereco.setBorder(BorderFactory.createLineBorder(Color.RED));
        } else
        {
            txtEndereco.setBorder(BorderFactory.createLineBorder(Color.GRAY));
        }

//        if (!pj.isCNPJ())
//        {
//            JOptionPane.showMessageDialog(null, "CNPJ inválido!! ",
//                    "Erro - CNPJ Inválido", JOptionPane.INFORMATION_MESSAGE, iconeErro);
//        }
        return valida;
    }

    public void mostraDados()
    {
        e = ctremp.getEmpresa();

        //seta os dados na view
        txtCodigo.setText(String.valueOf(e.getCodigo()));
        txtCodigo.setHorizontalAlignment(txtCodigo.CENTER);

        txtNome.setText(e.getNome());
        txtAtividade.setText(e.getAtividade());
        txtCNPJ.setText(e.getCnpj());
        txtTelefone.setText(e.getTelefone());
        txtCelular.setText(e.getCelular());
        txtCEP.setText(e.getCep());
        txtEndereco.setText(e.getEndereco());
        txtBairro.setText(e.getBairro());
        txtNumero.setText(e.getNumero());

        mostrarEstadoDados(e.getUf());
        cbbUf.setSelectedItem(e.getUf().getSigla());

        mostrarCidadeDados(e.getCidade());
        cbbCidade.setSelectedItem(e.getCidade().getNome());
        ManipularImagem.exibirImagemLabel(e.getFoto(), lblLogo);
    }                       

    private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt)                                          
    {                                              

        String valida = validaDados();

        if (valida.equals(""))
        {
            e = new Empresa();

            Uf estado = (Uf) cbbUf.getSelectedItem();
            Cidade cidade = (Cidade) cbbCidade.getSelectedItem();

            if (!txtCodigo.getText().equals(""))
            {
                e.setCodigo(Integer.parseInt(txtCodigo.getText()));
            }

            e.setNome(txtNome.getText().toUpperCase());
            e.setAtividade(txtAtividade.getText().toUpperCase());
            e.setCnpj(txtCNPJ.getText().replaceAll("\\D", ""));
            e.setTelefone(txtTelefone.getText().replaceAll("\\D", ""));
            e.setCelular(txtCelular.getText().replaceAll("\\D", ""));
            e.setUf(estado);
            e.setCidade(cidade);
            e.setCep(txtCEP.getText().replace("-", ""));
            e.setEndereco(txtEndereco.getText().toUpperCase());
            e.setBairro(txtBairro.getText().toUpperCase());
            e.setNumero(txtNumero.getText());
            e.setFoto(ManipularImagem.getImgBytes(imagem));

            if (ctremp.salvar(e))
            {
                JOptionPane.showMessageDialog(null, "Empresa cadastrada com sucesso!!",
                        "Cadastrado com sucesso", JOptionPane.INFORMATION_MESSAGE, iconeSucesso);

                estadoAlterar();

                if (primeiroAcesso)
                {
                    dispose();
                    frmMenuPrincipal menuP = new frmMenuPrincipal();
                    menuP.setNomeEmpresa();
                    menuP.setVisible(true);
                }
            } else
            {
                JOptionPane.showMessageDialog(null, "Erro ao cadastrar empresa!!",
                        "Erro ao cadastrar", JOptionPane.INFORMATION_MESSAGE, iconeErro);
            }
        } else
        {
            JOptionPane.showMessageDialog(null, "Por favor preencha os campos obrigatórios!!\n" + valida,
                    "Erro - campos obrigatórios", JOptionPane.INFORMATION_MESSAGE, iconeErro);

        }
    }                                         

    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt)                                            
    {                                                
        limpaTela();
        cancelar();
        mostraDados();

    }                                           

    private void btnAlterarActionPerformed(java.awt.event.ActionEvent evt)                                           
    {                                               
        estadoAlterarando();
    }                                          

    private void txtTelefoneFocusLost(java.awt.event.FocusEvent evt)                                      
    {                                          
        if (txtTelefone.getText().equals("(  )     -    "))
        {
            txtTelefone.setBorder(BorderFactory.createLineBorder(Color.RED));
        } else
        {
            txtTelefone.setBorder(BorderFactory.createLineBorder(Color.GRAY));
        }
    }                                     

    private void cbbUfPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt)                                                   
    {                                                       
        if (cbbUf.isPopupVisible())
        {
            carregaComboboxCidades();
        }
    }                                                  

    private void cbbUfFocusGained(java.awt.event.FocusEvent evt)                                  
    {                                      
        carregaComboboxEstados();
    }                                 

    private void txtCNPJFocusLost(java.awt.event.FocusEvent evt)                                  
    {                                      
        if (txtCNPJ.getText().equals("  .   .   /    -  "))
        {
            txtCNPJ.setBorder(BorderFactory.createLineBorder(Color.RED));
        } else
        {
            txtCNPJ.setBorder(BorderFactory.createLineBorder(Color.GRAY));
        }
    }                                 

    private void btnPesquisaCEPActionPerformed(java.awt.event.ActionEvent evt)                                               
    {                                                   
        WebServiceCep buscaCep = WebServiceCep.searchCep(txtCEP.getText());
        txtEndereco.setText(buscaCep.getLogradouroFull().toUpperCase());
        txtBairro.setText(buscaCep.getBairro().toUpperCase());
    }                                              

    private void txtEnderecoKeyTyped(java.awt.event.KeyEvent evt)                                     
    {                                         
        soLetras(evt, txtEndereco, 50);
    }                                    

    private void txtEnderecoFocusLost(java.awt.event.FocusEvent evt)                                      
    {                                          

        if (txtEndereco.getText().equals(""))
        {
            txtEndereco.setBorder(BorderFactory.createLineBorder(Color.RED));
        } else
        {
            txtEndereco.setBorder(BorderFactory.createLineBorder(Color.GRAY));
        }
        txtEndereco.setText(txtEndereco.getText().toUpperCase());
    }                                     

    private void txtBairroKeyTyped(java.awt.event.KeyEvent evt)                                   
    {                                       
        soLetras(evt, txtBairro, 30);
    }                                  

    private void txtBairroFocusLost(java.awt.event.FocusEvent evt)                                    
    {                                        
        txtBairro.setText(txtBairro.getText().toUpperCase());
    }                                   

    private void txtNumeroKeyTyped(java.awt.event.KeyEvent evt)                                   
    {                                       
        soNumeros(evt, txtNumero, 5);
    }                                  

    private void txtAtividadeKeyTyped(java.awt.event.KeyEvent evt)                                      
    {                                          
        soLetras(evt, txtAtividade, 50);
    }                                     

    private void txtAtividadeFocusLost(java.awt.event.FocusEvent evt)                                       
    {                                           
        txtAtividade.setText(txtAtividade.getText().toUpperCase());
    }                                      

    private void txtNomeKeyTyped(java.awt.event.KeyEvent evt)                                 
    {                                     
        soLetras(evt, txtNome, 50);
    }                                

    private void txtNomeFocusLost(java.awt.event.FocusEvent evt)                                  
    {                                      
        if (txtNome.getText().equals(""))
        {
            txtNome.setBorder(BorderFactory.createLineBorder(Color.RED));
        } else
        {
            txtNome.setBorder(BorderFactory.createLineBorder(Color.GRAY));
        }
        txtNome.setText(txtNome.getText().toUpperCase());
    }                                 

    private void txtComplementoFocusLost(java.awt.event.FocusEvent evt)                                         
    {                                             
        txtComplemento.setText(txtComplemento.getText().toUpperCase());
    }                                        

    private void txtComplementoKeyTyped(java.awt.event.KeyEvent evt)                                        
    {                                            
        soLetras(evt, txtComplemento, 12);
    }                                       

    private void btnPesquisarImagemActionPerformed(java.awt.event.ActionEvent evt)                                                   
    {                                                       
        JFileChooser fc = new JFileChooser();

        fc.setFileFilter(new FileFilter() // filtro p/ imagem
        {
            @Override
            public boolean accept(File f)
            {
                String nome = f.getAbsolutePath();
                return nome.endsWith("jpg") | nome.endsWith("png") | nome.endsWith("bmp") | f.isDirectory();
            }

            @Override
            public String getDescription()
            {
                return "Imagem";
            }
        });

        if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
        {
            File arquivo = fc.getSelectedFile();

            try
            {
                imagem = ManipularImagem.setImagemDimensao(arquivo.getAbsolutePath(), lblLogo.getWidth(), lblLogo.getHeight());
                lblLogo.setIcon(new ImageIcon(imagem));

            } catch (Exception ex)
            {
                System.out.println(ex.getMessage());
            }

        } else
        {
            JOptionPane.showMessageDialog(null, "Você não selecionou nenhum arquivo.");
        }


    }                                                  


    // Variables declaration - do not modify                     
    private javax.swing.JButton btnAlterar;
    private javax.swing.JButton btnCancelar;
    private javax.swing.JButton btnPesquisaCEP;
    private javax.swing.JButton btnPesquisarImagem;
    private javax.swing.JButton btnSalvar;
    private javax.swing.JComboBox<Cidade> cbbCidade;
    private javax.swing.JComboBox<Uf> cbbUf;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel26;
    private javax.swing.JLabel jLabel27;
    private javax.swing.JLabel jLabel28;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel30;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JLabel lblLogo;
    private javax.swing.JTextField txtAtividade;
    private javax.swing.JTextField txtBairro;
    private javax.swing.JFormattedTextField txtCEP;
    private javax.swing.JFormattedTextField txtCNPJ;
    private javax.swing.JFormattedTextField txtCelular;
    private javax.swing.JTextField txtCodigo;
    private javax.swing.JTextField txtComplemento;
    private javax.swing.JTextField txtEndereco;
    private javax.swing.JTextField txtNome;
    private javax.swing.JTextField txtNumero;
    private javax.swing.JFormattedTextField txtTelefone;
    // End of variables declaration                   
}

O que há na linha 356 do arquivo frmCadEmpresa.java ?

ManipularImagem.exibirImagemLabel(e.getFoto(), lblLogo);

Método exibirImagemLabel

 public static void exibirImagemLabel(byte[] minhaimagem, javax.swing.JLabel label)
    {
        //primeiro verifica se tem a imagem
        //se tem convert para inputstream que é o formato reconhecido pelo ImageIO
        if (minhaimagem != null)
        {
            InputStream input = new ByteArrayInputStream(minhaimagem);
            
            
            try
            {
                BufferedImage imagem = ImageIO.read(input);
                label.setIcon(new ImageIcon(imagem));
                
                
            } catch (IOException ex)
            {
                JOptionPane.showMessageDialog(null, ex.getMessage());
            }

        } else
        {
            label.setIcon(null);

        }

    }

Em nenhum lugar você está inicializando a variavel lblLogo.

Sim, mas mesmo que eu a inicialize continua com mesmo erro.

Se acontece, não é na mesma linha, pois se fosse a variável ‘e’ que não estivesse inicializada, o erro aconteceria bem antes, pois você acessa membros de ‘e’ antes daquela linha.
Você tem que aprender a interpretar o StackTrace.

// metodo para pegar o imageicon e gerar o array de bytes que salvara no banco
private byte[] ObjectToBytes(Object object) {
    ObjectOutputStream oo = null;
    byte[] dados = null;

    try {
        ByteArrayOutputStream bo = new ByteArrayOutputStream();
        ImageIO.write((BufferedImage) object, "jpg", bo);//seta a imagem para bytesImg
        bo.flush();//limpa a variável
        dados = bo.toByteArray();//Converte ByteArrayOutputStream para byte[] 
        bo.close();//fecha a conversão
    } catch (IOException ex) {
        ex.printStackTrace();
    }

    tamobj = dados.length;
    return dados;
}


// metodo para pegar os bytes lidos do banco e gerar o objeto que sera o imageicon
private Object BytesToObject(byte[] dados) {
    Object object = null;

    try {
        object = ImageIO.read(new ByteArrayInputStream(dados));
    } catch (IOException ex) {
        ex.printStackTrace();
        return new Object();
    }
    return object;
}