[RESOLVIDO] Erro NullPointerException

Estou tentando inserir dados em uma tabela, porém está me retornando erro de nullpointerexception. Os objetos estão instanciados, mas não consigo saber onde está o problema. Segue os códigos:


[b]CursoBean[/b]
@ManagedBean
@SessionScoped
public class CursoBean implements Serializable {
    
    private CursoDao cursoDao ;   
    private Curso curso = new Curso();
   
    //getters e setters de curso
    
   
     public String inserir() throws SQLException, ClassNotFoundException{

         cursoDao = new CursoDao();       
        String resultado = "falha";
        
        int codCur = (this.cursoDao.seqCurso());
        System.out.println(codCur);
        boolean retorno = cursoDao.inserir(curso);  //Nesta parte que ocorre o erro, pois não está chamando o CursoDao
        System.out.println(retorno);
        
        if (retorno) {
            resultado = "cursos";
        }

        return resultado;
    }
}

CursoDao


public class CursoDao implements Serializable {
    
    private Connection connection;
    String cmdSQL;
    private boolean sucesso = false;
 
    public CursoDao() throws SQLException, ClassNotFoundException {
        this.connection = new ConnectionFactory().getConnection();
    }
    
    public boolean inserir(Curso curso) {
       
        cmdSQL = "insert into curso " +
                        "(cod_curso, nome_curso)" 
                      +" values (?,?)";
        

        try {
            PreparedStatement stmt = connection.prepareStatement(cmdSQL);
            
            //System.out.println(curso.getCod_curso());
            stmt.setInt(1, curso.getCod_curso()); 
            stmt.setString(2, curso.getNome_curso()); 
           
            stmt.execute();
            stmt.close();
            sucesso = true;
            
        } catch (SQLException e) {
            throw new RuntimeException(e);
        } 
        return sucesso;
    }
}

Posta o erro que ocorre e sua classe Curso também.

Oi Leandro, agora que passei por aqui para postar. Eu fiz umas correções no cursoDao que corrigiu o problema, porém eu continuo com problemas do nullpointer quando uso o dialog no xhtml. O código abaixo é o xhtml para cadastro/alteração dos dados de curso. coloquei as linhas comentadas, pois somente assim não apresenta o erro e grava corretamente na tabela. A classe curso contém somente os atributos e os getters e setters.

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui">    

    <h:head>
        <link rel="stylesheet" type="text/css" href="css/padrao.css"/>
        
    </h:head>
    <h:body>  
        <ui:composition template="padrao.xhtml">
            <ui:debug hotkey="K" />
            <ui:define name="centro">
              <h:form id="frm_curso_pg">     
                <p:toolbar id="tool_curso" >
                    <p:toolbarGroup align="left">  

                        <p:commandButton image="bt_toolbar_cancelar" title="Limpar Tela"  id="bt_toolbar_cancelar"  /> 
                        <p:commandButton image="bt_toolbar_salvar"   title="Salvar"       id="bt_toolbar_salvar"  /> 
                        <p:commandButton image="bt_toolbar_print"    title="Imprimir"     id="bt_toolbar_print"    /> 
                        <p:separator/>  
                        
                        <p:commandButton image="bt_toolbar_localizar" title="Localizar" id="bt_toolbar_localizar" /> 
                        <p:separator/>  

                        <p:commandButton image="bt_toolbar_incluir" title="Novo"    id="bt_toolbar_incluir" action="#{cursoBean.novo()}"/>
                        <p:commandButton image="bt_toolbar_editar"  title="Editar"  id="bt_toolbar_editar"   /> 
                        <p:commandButton image="bt_toolbar_excluir" title="Excluir" id="bt_toolbar_excluir"  /> 
                        <p:separator/>  

                        <p:commandButton image="bt_toolbar_grafico" title="Gráfico" id="bt_toolbar_grafico"    /> 
                        <p:separator/>  

                        <p:commandButton image="bt_toolbar_ajuda"  title="Ajuda"       id="bt_toolbar_ajuda"    /> 
                        <p:commandButton image="bt_toolbar_inform" title="Informações" id="bt_toolbar_inform"    />  
                        
                        
                    </p:toolbarGroup>  

                    <p:toolbarGroup align="right">  

                        <p:commandButton image="bt_toolbar_exit" title="Sair" id="bt_toolbar_exit"    />  

                    </p:toolbarGroup>       

                </p:toolbar>  


   
                    <p:tabView>

                        <p:tab title ="Curso">

                            <p:fieldset legend="Dados do Curso" id="fds_curso" >  
                                


                                <p class="TamanhoComponents_codigo_med">
                                    <h:inputHidden value="#{cursoBean.curso.cod_curso}" />
                                </p>
                                <p class="TamanhoComponents_dsc_vchar_med">
                                    <p:outputLabel value="Nome "/> <br/>
                                    <p:inputText value="#{cursoBean.curso.nom_curso_hist}"  />
                                    
                                     
                                </p>
                                
                               
                                <p:commandButton action="#{cursoBean.inserir}" value="Inserir"/>
                                <p:commandButton action="#{cursoBean.alterar}" value="Alterar"/>
                                                               <!--  NESTA LINHA, SE NÃO COMENTAR GERA O ERRO NULLPOINTER
<p:commandButton id="modalDialogButton" value="Modal" onclick="frm_dlg_mod.show();" type="button" />  
   -->                            
                                
                                              <!--  ESTA LINHA TAMBÉM GERA O ERRO
 

                <p:dialog id="modalDialog" header="Selecione a Área" widgetVar="frm_dlg_mod" modal="false" height="400" width="400" resizable="false" closable="true">  

                    <ui:include src="frmcurso.xhtml" />

                </p:dialog>  
                        -->
                                     
                    </p:tabView>  

                </h:form> 
            </ui:define>
        </ui:composition>

    </h:body>  
</html>

Depois de muito pesquisar e testar, consegui uma solução bem simples (não sei se é a melhor). Bastou eu retirar o dialog de dentro do form, ou seja, coloquei-o após o fechar o form principal. Funcionou tanto para inserir, que estava dando NullPointer quanto para Alteração que trazia somente os dados antigos.