Não funciona o <p:rowEditor> para chamar o método para alterar a linha (row) somente para can

Pessoal,

Estou com o seguinte código

<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	template="/templates/layout.xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">

	<ui:define name="titulo">
		BEM VINDO(A)
	</ui:define>

	<ui:define name="content">
		<h:form id="form">
		
			<p:growl id="messages" showDetail="true"/>
			
			<p:dataTable id="temaLista" value="#{temasBean.lista}" var="temas" rows="15"
			 paginator="true" editable="true">
			 
			 <p:ajax event="rowEditCancel" listener="#{temasBean.emCancelamento}" update=":form:messages"/>		
			 <p:ajax event="rowEdit" listener="#{temasBean.onEdit}" update=":form:messages"/>	
			 
			 <f:facet name="header">
			 	Lista de Temas Abordados em Reuniões Familiares
			 </f:facet>						 
			 <p:column headerText="Palestrantes" style="width:30%">
			 	<p:cellEditor>
			 		<f:facet name="output">
			 			<h:outputText value="#{temas.palestrante}" />
			 		</f:facet>
			 		<f:facet name="input">
			 			<p:inputText value="#{temas.palestrante}" style="width:100%">			 			
			 			</p:inputText>
			 		</f:facet>
			 	</p:cellEditor>
			 </p:column>
			 
			 <p:column headerText="Integrantes">
			 	<p:cellEditor>
			 		<f:facet name="output">
			 			<h:outputText value="#{temas.integrantes}" />
			 		</f:facet>
			 		<f:facet name="input">
			 			<p:inputText value="#{temas.integrantes}">			 			
			 			</p:inputText>
			 		</f:facet>
			 	</p:cellEditor>
			 </p:column>
			 
			 <p:column headerText="Temas">
			 	<p:cellEditor>
			 		<f:facet name="output">
			 			<h:outputText value="#{temas.tema}" />
			 		</f:facet>
			 		<f:facet name="input">
			 			<p:inputText value="#{temas.tema}">			 			
			 			</p:inputText>
			 		</f:facet>
			 	</p:cellEditor>
			 </p:column>
			 
			 <p:column headerText="Data">
			 	<p:cellEditor>
			 		<f:facet name="output">
			 			<h:outputText value="#{temas.data}" >
			 				<f:convertDateTime pattern="dd/MM/yyyy" timeStyle="medium"/>	
			 			</h:outputText>
			 		</f:facet>
			 		<f:facet name="input">
			 			<p:inputText value="#{temas.data}">		 			
			 			</p:inputText>
			 		</f:facet>
			 	</p:cellEditor>
			 </p:column>
			 
			 <p:column headerText="Alterar" style="width:8%">
			 	<p:rowEditor/>
			 </p:column>						
			 
			 <f:facet name="footer">
			 	<p:commandButton value="Novo Tema" oncomplete="cadastroTema.show()" icon="ui-icon-star"  title="Cadastrar temas abordados"/>
			 	<p:commandButton value="Deletar Tema" actionListener="#{temasBean.exlcuir}" update="temaLista" icon="ui-icon-trash"/>  
			 </f:facet>			
			 
			</p:dataTable>
			
			<p:dialog header="Cadastrar Tema Abordado" widgetVar="cadastroTema" resizable="false" id="cadastTema">
				<h:form id="cadastroTema">
				
					<p:growl id="growl" showDetail="true" life="5000" />
					
					<p:panelGrid id="displayCadastTema" columns="2" cellpadding="4" style="margin:0 auto;">
						<h:outputText value="Palestrante :"></h:outputText>
                        <p:inputText value="#{temasBean.temas.palestrante}" required="true" requiredMessage="Coloque o nome do Palestrante!"/>
                        
                        <h:outputText value="Integrantes :"></h:outputText>
                        <p:inputText value="#{temasBean.temas.integrantes}" required="true" requiredMessage="Coloque o(s) nome(S) dos integrantes!"/>
                        
                        <h:outputText value="Tema :"></h:outputText>
                        <p:inputText value="#{temasBean.temas.tema}" required="true" requiredMessage="Informe o nome do Tema abordado hoje!!"/>
                        
                        <h:outputText value="Data :"></h:outputText>
                        <p:calendar value="#{temasBean.temas.data}" pattern="dd/MM/yyyy" required="true"
                        	requiredMessage="A data é sumamente importante!!"/>                       
                        <f:facet name="footer">
                            <p:commandButton value="Submit" update=":form:temaLista, growl" 
                            	oncomplete="handleSubmitRequest(xhr, status, args, 'cadastTema','cadastroTema');" actionListener="#{temasBean.salvar}"/>
                            <p:commandButton type="reset" value="Reset"></p:commandButton>                            
                    	</f:facet>
					</p:panelGrid>
				</h:form>
			</p:dialog>
		</h:form>	
	</ui:define>
</ui:composition>

Prezados, quando clico no <p:rowEditor> o mesmo não funciona para chamar o método para alterar a linha (row) mas para cancelar é chamado alguém já passou por isso ? Tem alguma luz para compartilhar para solucionar esse impasse ?

Grato!

como está a assinatura do método onEdit no backbean ?

O que eu quero implementar é esse:

	public void emEdit(RowEditEvent e){
		
		temas = (Temas) e.getObject();
		
		try {
			if(temas != null){
				alterar(temas);
				FacesMessage facesMessage = new FacesMessage("Alteração realizada com sucesso!");
				FacesContext.getCurrentInstance().addMessage(null, facesMessage);
			}else{
				FacesMessage facesMessage = new FacesMessage("Nenhuma alteração foi realizada!");
				FacesContext.getCurrentInstance().addMessage(null, facesMessage);
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

O que está agora para tentar testar é:

	public void onEdit(RowEditEvent event){
		
		FacesMessage facesMessage = new FacesMessage("Alterado!", ((Temas) event.getObject()).getTema());
		FacesContext.getCurrentInstance().addMessage(null, facesMessage);
	}

cara, já viu se não tem outro objeto cujo a sua referência está nulla e ao fazer essa chamada está ocorrendo nullpointer. Isso acontece muito quando estou trabalhando com tabela e escopo request. Tenta colcoar escopo Session pra testar…

Provavelmente quando é feita a chamada do método a lista está nula. Coloque ela na sessão para testar.

A lista não vem nula, isso é fato. Ela é preenchida e somente quando ela é preenchida é que aparece o <p:rowEditor> para clicar.

Se quiser ter uma idéia melhor do que estou falando faça uma visitinha aqui http://allanfreitas.net/HomeEvening !