Jsf + Hibernate erro java.lang.NullPointerException

Boa noite galera, estou recebendo essa exception quando tento atualizar um cadastro numa tabela.

Eu tenho uma função na minha classe GerenciarPessoa.java

public void updatePessoa(ActionEvent event){
		PessoaDao pd = new PessoaDao();
		UIParameter parameter = (UIParameter)event.getComponent().findComponent("idPessoa");
		int id = Integer.parseInt(parameter.getValue().toString()); //Eu fiz debug e aqui para a função. 
		this.pessoa.setIdPessoa(id);
		try {
			pd.updatePessoa(this.pessoa);
		} catch (Exception e) {
			e.printStackTrace();
		}
		TelefoneDao td = new TelefoneDao();
		this.telefone.setIdTelefone(id);
		try {
			td.updateTelefone(this.telefone);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
<rich:column style="text-align:center">
					<f:facet name="header">
						<h:outputText value="Excluir" />
					</f:facet>
					<h:commandLink value="Excluir"
						onclick="return confirm('Deseja realmente excluir?');"
						style="font-weight:bolder;text-decoration:none"
						actionListener="#{GP.excluirPessoa}">
						<f:param id="idPessoa" name="idPesoa" value="#{con.idPessoa}" />
					</h:commandLink>
				</rich:column>
				<rich:column>
					<f:facet name="header">
						<h:outputText value="Editar" />
					</f:facet>
					<a4j:commandLink value="Editar" ajaxSingle="true" id="edits"
						oncomplete="#{rich:component('editpes')}.show()">
						
					</a4j:commandLink>
				</rich:column>
			</rich:dataTable>
		</h:form>

		<h:form>
			<rich:modalPanel id="editpes" autosized="true" width="450">
				<f:facet name="header">
					<h:outputText value="Edição do Contato" />
				</f:facet>
				<h:panelGrid columns="1">
					<h:outputText style="font-size:12;font-weight:bold" value="Nome:" />
					<h:inputText value="#{GP.pessoa.nome}" id="nome" required="true"
						requiredMessage="*Campo Nome Obrigatório" />
					<h:message for="nome"
						style="color:red;font-weight:bold;font-size:12"></h:message>
					<h:outputText style="font-size:12;font-weight:bold"
						value="Residencial:" />
					<h:inputText id="res" value="#{GP.telefone.residencial}"
						required="true" requiredMessage="*Campo Residencial Obrigatório" />
					<h:message for="res"
						style="color:red;font-weight:bold;font-size:12" />
					<h:outputText style="font-size:12;font-weight:bold"
						value="Celular:" />
					<h:inputText id="cel" value="#{GP.telefone.celular}" />
					<h:outputText style="font-size:12;font-weight:bold"
						value="Comercial:" />
					<h:inputText id="com" value="#{GP.telefone.comercial}" />
				</h:panelGrid>
				<h:commandLink value="Atualizar"
						style="font-weight:bolder;text-decoration:none"
						actionListener="#{GP.excluirPessoa}">
					<f:param id="idPessoa" name="idPesoa" value="#{con.idPessoa}" />
				</h:commandLink>
			</rich:modalPanel>
		</h:form>
30/05/2012 22:27:05 javax.faces.event.MethodExpressionActionListener processAction
GRAVE: 'java.lang.NullPointerException' recebido ao invocar escuta de ação '#{GP.excluirPessoa}' para o componente 'j_id_jsp_644619704_43'
30/05/2012 22:27:05 javax.faces.event.MethodExpressionActionListener processAction
GRAVE: java.lang.NullPointerException
	at manager.GerenciarPessoa.excluirPessoa(GerenciarPessoa.java:60)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:144)
	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:84)
	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:773)
	at javax.faces.component.UICommand.broadcast(UICommand.java:296)
	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
	at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
	at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:532)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)

30/05/2012 22:27:05 org.ajax4jsf.component.AjaxViewRoot processEvents
GRAVE: Error processing faces event for the component j_id_jsp_644619704_29:j_id_jsp_644619704_43
javax.faces.event.AbortProcessingException: /consultapessoa.jsp(107,4) '#{GP.excluirPessoa}' java.lang.NullPointerException
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:178)
	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:84)
	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:773)
	at javax.faces.component.UICommand.broadcast(UICommand.java:296)
	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
	at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
	at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:532)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
	at manager.GerenciarPessoa.excluirPessoa(GerenciarPessoa.java:60)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:144)
	... 32 more

A própria mensagem de erro diz onde está o problema.
Olha nessa linha: at manager.GerenciarPessoa.excluirPessoa(GerenciarPessoa.java:60)

Alguma coisa está null aí.

jakeflog como vc disse está passando Null. Mas eu tenho um outro método que segue abaixo e funciona sendo a mesma coisa para fazer.

public void excluirPessoa(ActionEvent event) {
		PessoaDao pd = new PessoaDao();
		UIParameter parameter = (UIParameter) event.getComponent()
				.findComponent("idPessoa");

		int idPessoa = Integer.parseInt(parameter.getValue().toString());
		FacesContext context = FacesContext.getCurrentInstance();
		String mensagem = "";

		try {
			Pessoa pessoa = new Pessoa();
			pessoa.setIdPessoa(idPessoa);
			pd.deletePessoa(pessoa);
			mensagem = "*Contato Excluido Com Exito!";
			listarTodos();
		} catch (Exception e) {
			mensagem = "Erro ao excluir Contato" + e.getMessage();
		}
		FacesMessage fm = new FacesMessage(mensagem);
		context.addMessage("form3", fm);
	}

Eu to achando que
quando eu chamo uma tag <rich:modalPanel></rich:modalPanel> para receber os dados do object para o usuário atualizar,

eu não consiguo ver minha lista da <rich:datatable>

Isso é correto o que eu disse ?

Sem ofensa mano, mas se tivesse a mesma coisa c tb teria o erro… =/

Coloca aí o que dá o erro. vamo v. posta pouco código igual ao que você colocou aí que funciona.

Então segue abaixo os dois métodos … o Excluir funciona o Update não;


public void excluirPessoa(ActionEvent event) {
		PessoaDao pd = new PessoaDao();
		UIParameter parameter = (UIParameter) event.getComponent()
				.findComponent("idPessoa");

		int idPessoa = Integer.parseInt(parameter.getValue().toString());
		FacesContext context = FacesContext.getCurrentInstance();
		String mensagem = "";

		try {
			Pessoa pessoa = new Pessoa();
			pessoa.setIdPessoa(idPessoa);
			pd.deletePessoa(pessoa);
			mensagem = "*Contato Excluido Com Exito!";
			listarTodos();
		} catch (Exception e) {
			mensagem = "Erro ao excluir Contato" + e.getMessage();
		}
		FacesMessage fm = new FacesMessage(mensagem);
		context.addMessage("form3", fm);
	}
	public void updatePessoa(ActionEvent event){
		PessoaDao pd = new PessoaDao();
		UIParameter parameter = (UIParameter)event.getComponent().findComponent("idPessoa");
		int id = Integer.parseInt(parameter.getValue().toString());
		this.pessoa.setIdPessoa(id);
		try {
			pd.updatePessoa(this.pessoa);
		} catch (Exception e) {
			e.printStackTrace();
		}
		TelefoneDao td = new TelefoneDao();
		this.telefone.setIdTelefone(id);
		try {
			td.updateTelefone(this.telefone);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

Aqui segue minha pagina .jsp

	<rich:column style="text-align:center">
					<f:facet name="header">
						<h:outputText value="Excluir" />
					</f:facet>
					<h:commandLink value="Excluir"
						onclick="return confirm('Deseja realmente excluir?');"
						style="font-weight:bolder;text-decoration:none"
						actionListener="#{GP.excluirPessoa}">
						<f:param id="idPessoa" name="idPessoa" value="#{con.idPessoa}" /> <%-- Aqui eu passo como parâmetro o id da pessoa --%>
					</h:commandLink>
				</rich:column>
		<rich:column>
					<f:facet name="header">
						<h:outputText value="Editar" />
					</f:facet>
					<a4j:commandLink value="Editar" ajaxSingle="true" id="edits"
						oncomplete="#{rich:component('editpes')}.show()">
						  <f:setPropertyActionListener value="#{con}"
                            target="#{GP.currentItem}" />
                        <f:setPropertyActionListener value="#{row}"
                            target="#{GP.currentRow}" />
					</a4j:commandLink>
				</rich:column>
			</rich:dataTable>
		</h:form>

			<rich:modalPanel id="editpes" autosized="true" width="450">
				<f:facet name="header">
					<h:outputText value="Edição do Contato" />
				</f:facet>
		<h:form>
				<h:panelGrid columns="1">
                <a4j:outputPanel ajaxRendered="true">
                    <h:panelGrid columns="2">
                        <h:outputText value="Nome:" />
                        <h:inputText value="#{GP.pessoa.nome}" />
                    </h:panelGrid>
                     </a4j:outputPanel>
				<a4j:commandButton value="Atualizar"
						style="font-weight:bolder;text-decoration:none"
						actionListener="#{GP.updatePessoa}" reRender="nome">
					<f:param id="idPessoa" name="idPessoa" value="#{con.idPessoa}" /> <%-- Aqui estou tentando passar como parâmetro o id da pessoa --%>
				</a4j:commandButton>
				</h:panelGrid>
		</h:form>
			</rich:modalPanel>

Repara que em um você tem <h:commandLink no outro um a4j:commandLink.

Isso tudo dá diferença cara.

Uma ótima observação … Irei fazer uns testes e depois postarei o resultado.

Vc tinha razão … mudei minha função que estava funcionando do Excluir utilizando as tags <a4j:commandLink></a4j:commandLink>

Qual atributo que eu poderia definir no

para chamar a função #{rich:component(‘editpes’)}.show()" … Já tentei varios atributos e não estou conseguindo chamar

o modelPanel …

Estou vendo no JavaDoc… Se poder me Ajudar. Desde já agradeço tudo … Vlw.

Saco muito de richfaces não, imagino eu que você realmente terá que utilizar o a4j:commandLink.
Veja se no editar se o método <f:setPropertyActionListener value="#{con}“
target=”#{GP.currentItem}" /> e se você está utilizando esse cara corretamente.

Você pode tentar fazer do mesmo modo: <f:param id=“idPessoa” name=“idPessoa” value="#{con.idPessoa}" />

Irei fazer os testes …

Consertei algumas coisas no meu código.

Agora consegui resgatar o objeto que eu vou editar com as tags

E utilizei o

Passando meu Objeto para o ManagerBean.

Brigado pela dicas jakeflog … Não vejo a hora de trabalhar na área JAva.