[RESOLVIDO]p:dataTable value não atualiza

Olá galera to com um problema muito simples porem ta me deixado bem puto já, pois nada do que tentei funcionou .

Ao adicionar um novo item na tabela no action do <h:commandButton > dentro do <p:dataTable > quando dou um getBar().getFiliais() está vazio mesmo ja tendo um item na lista. no caso o primeiro registro adiciona legal já no segundo a lista ta vazia =(

Ja grato a quem puder ajudar entender o que ta faltando aqui .

vlw

import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;

import org.apache.commons.lang.StringUtils;
import org.primefaces.event.RowEditEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;

import com.ocpsoft.pretty.faces.annotation.URLAction;
import com.ocpsoft.pretty.faces.annotation.URLBeanName;
import com.ocpsoft.pretty.faces.annotation.URLMapping;
import com.ocpsoft.pretty.faces.annotation.URLMappings;

@Controller(“BarControle”)
@ViewScoped
@URLMappings(mappings = {
@URLMapping(id = “bar”, pattern = “/bar”, viewId = “/faces/pages/cadastros/barCons.xhtml”) ,
@URLMapping(id = “barEditar”, pattern = “/bar/#{id: BarControle.idBar}/editar”, viewId = “/faces/pages/cadastros/barForm.xhtml”) ,
@URLMapping(id = “barNovo”, pattern = “/bar/novo”, viewId = “/faces/pages/cadastros/barForm.xhtml”)
})
@URLBeanName(“BarControle”)
public class BarControle extends SuperControle {

private static final long serialVersionUID = 1L;
private Long idBar;
private String onComplete ;

private BarVO bar; 

private List<FilialVO> filiais;

private FilialVO filial;
private FiltroBar filtro = new FiltroBar();
@Autowired
private BarService barService;

private List<SelectItem> listaTipoLogradouros ;
 

public void adicionarFilial() { 
	try {
    	FilialVO filial = new FilialVO();
    	filial.setEmEdicao(true);
    	setFilial(filial);
	} catch (Exception e) { 
		setMensagemID("Erro", Uteis.ERRO);
	}
}
public void confirmarFilial() {
	try {
		 
		if (!getBar().getFiliais().contains(getFilial())) {
			getBar().getFiliais().add(getFilial());
		}
	} /*catch (ValidarException e) { 
		setValidarExceptionMensagemDetalhada(Uteis.internacionalizar("msg_atencao"), e, Uteis.ERRO);
	}*/ catch (Exception e) { 
		setMensagemID("Erro", Uteis.ERRO);
	}
}
    


public BarVO getBar() {
	if (bar == null) {
		bar = new BarVO();
	}
	return bar;
}

public void setBar(BarVO bar) {
	this.bar = bar;
}

public void setFiltro(FiltroBar filtro) {
	this.filtro = filtro;
}


public Long getIdBar() {
	return idBar;
}

public void setIdBar(Long idBar) {
	this.idBar = idBar;
}

public List<FilialVO> getFiliais() {
	if (filiais ==null) {
		filiais = new ArrayList<FilialVO>();
	}
	return filiais;
}

public void setFiliais(List<FilialVO> filiais) {
	this.filiais = filiais;
}

public FilialVO getFilial() {
	return filial;
}

public void setFilial(FilialVO filial) {
	this.filial = filial;
}

}

   <ui:define name="content">        
		<div class="box box-primary  ui-grid" style="width: 100%">
            <div class="box-header with-border">
              <h3 class="box-title"><h:outputText
				value="#{msg.prt_bar_titulo}" /> </h3>
            </div>
		
			<div class="box-body" > 
			
  			  <p:panelGrid columns="1" columnClasses="ui-grid-col-12" layout="grid" styleClass="ui-panelgrid-blank">
				<h:form id="form">
				<div class="row"> 
					
					<div class="form-group ui-grid-col-4"> 
						<h:outputLabel value="#{msg.prt_nome}"/>
						<p:inputText  value="#{BarControle.bar.nome}" autocomplete="off" size="50" styleClass="form-control"/>  
					</div> 
					<div class="form-group ui-grid-col-2"> 
						<h:outputLabel value="CNPJ"/>
						<p:inputMask  value="#{BarControle.bar.cnpj}" autocomplete="off" size="30" 	 styleClass="form-control"  mask="99.999.999/9999-99"/>  
					</div> 
					<div class="form-group ui-grid-col-1" > 
						<h:outputLabel value="Desabilitado"  />
						<p:selectBooleanCheckbox  value="#{BarControle.bar.desabilitado}"  style="width: 100%; padding-top:3px;"  />  
					</div>
					 
				</div>
					 
				<p:dataTable  id="filiais" var="fil" value="#{BarControle.bar.filiais}" emptyMessage="#{msg.msg_nenhum_dado_encontrato}"  scrollable="true">
				      <f:facet name="header" >
			            Filiais
			        </f:facet>
					<p:column  width="5%" > 
 				 		    <f:facet name="header">
					            <h:commandButton image="/imagens/adicionar.png"   action="#{BarControle.adicionarFilial}"  immediate="true"  >  
					            	<p:ajax  update="form:modalFilial" process="filiais"  immediate="true"  oncomplete="PF('modalFilial').show();"/>
					            </h:commandButton>	  
					        </f:facet> 
				            <h:commandButton image="/imagens/editar.png"  rendered="#{not fil.emEdicao}"  action="#{BarControle.editarFilial}" > 
				            	<p:ajax   process="filiais"  oncomplete="" update="filiais" />
				             </h:commandButton>	 
				            <h:commandButton image="/imagens/confirmar.png" rendered="#{fil.emEdicao}"   action="#{BarControle.confirmarFilial}" > 
				            	<p:ajax process="@this"  update="filiais" />
				             </h:commandButton>	 
				             <p:spacer width="10"/>
				            <h:commandButton image="/imagens/remover.png"   action="#{BarControle.removerFilial}" > 
				            	<p:ajax  process="filiais"   oncomplete="" update="filiais" />
				             </h:commandButton>	 
					</p:column>   
					
					<p:column headerText="#{msg.prt_nome}" width="88%"  >
						<h:outputText value="#{fil.nome}"  />  
					</p:column> 
					
					<p:column headerText="#{msg.prt_desabilitado}"  width="7%"  style="text-align: center;" >
						<h:outputLabel value="#{fil.desabilitado ? 'Sim' : 'Não'}" style="text-align: center;"  />  
					</p:column> 
				</p:dataTable>
					 
				<div   > 
					<div class="box" >
					 
						<div class="box-body ui-g" >
										  
							<div class="input-group">
									<h:panelGroup id="mensagens" >
										<h:graphicImage url="#{BarControle.iconeMensagem}"/><p:spacer width="10"  />
										<h:outputText value="#{BarControle.mensagemID}"/> 
									</h:panelGroup>
									<h:dataTable id="listaMensagens" width="100%"
										headerClass="consulta" styleClass="mensagem"
										columnClasses="colunaEsquerda"
										value="#{BarControle.listaMensagemErro}" var="mensagem"
										rows="3">
										<h:column>
											<h:outputText value="#{mensagem}" />
										</h:column>
									</h:dataTable>
							 </div>
								  
						</div>
						
					</div>
				</div>
				 <div style="text-align: center;">  
					 <div class="">
					 	<h:commandButton class="btn btn-primary" action="#{BarControle.novo}" value="Novo" />
					 	<p:spacer width="10"  />
					 	<h:commandButton class="btn btn-primary" action="#{BarControle.gravar}" value="Gravar"    >
					 	</h:commandButton>
					 	<p:spacer width="10"  rendered="#{not BarControle.bar.novoObj}" />
					 	<h:commandButton class="btn btn-danger" action="#{BarControle.excluir}" value="Excluir" rendered="#{not BarControle.bar.novoObj}" >
					 	 		<p:ajax  update="confirmaDialog" process="form"  oncomplete="PF('confirmaDialog').show();"/>
					 	</h:commandButton> 

					 	<p:spacer width="10"  />
					 	<h:commandButton class="btn btn-default" action="#{BarControle.consultar}" value="Consultar" />
					 	 <p:remoteCommand name="confirmaExcluir" update="form, mensagens, listaMensagens" process="form" 
					 	 			actionListener="#{BarControle.excluir}" />
					 </div>
				 </div>

					<p:dialog header="#{msg.prt_Filial_titulo}" modal="true" responsive="true"
						resizable="false" draggable="false" widgetVar="modalFilial"  
						minHeight="40" id="modalFilial" style="position: fixed"> 
	  					  <p:panelGrid id="linha1" columns="3"   styleClass="ui-g ui-panelgrid-blank">
			
								<p:panelGrid columns="1" styleClass="form-group">
									<h:outputLabel value="#{msg.prt_nome}" />
									<p:inputText value="#{BarControle.filial.nome}" autocomplete="off"
										size="50" styleClass="form-control" />
								</p:panelGrid>
								
								<p:panelGrid columns="1" styleClass="form-group">
									<h:outputLabel value="CNPJ" />
									<p:inputMask value="#{BarControle.filial.cnpj}" autocomplete="off"
										size="20" styleClass="form-control" mask="99.999.999/9999-99" />
								</p:panelGrid>
								
								<p:panelGrid columns="1" styleClass="form-group">
									<h:outputLabel value="Desabilitado" />
									<p:selectBooleanCheckbox value="#{BarControle.filial.desabilitado}"
										style="width: 100%; padding-top:3px;" />
								</p:panelGrid>
							 

					
							</p:panelGrid>
							
	  				 
							<p:panelGrid columns="1" columnClasses="ui-grid-col-12" layout="grid" styleClass="tabForm ui-panelgrid-blank">
								<h:panelGroup>
									<p:commandButton class="btn btn-primary"   update="form, form:modalFilial" process="form, form:modalFilial"  
										value="Confirmar" action="#{BarControle.confirmarFilial}" >
										 
									</p:commandButton>
									<p:spacer width="10" />
									<h:commandButton class="btn btn-default" value="Cancelar">
										<p:ajax
											oncomplete="PF('modalFilial').hide();" />
									</h:commandButton>
								</h:panelGroup>
							</p:panelGrid>   
					</p:dialog>
			</h:form> 
			</p:panelGrid>
			</div>
		</div>
	

   </ui:define>  

Finalmente encontrei o problema… Básico… que ao adicionar estava utilizando um action
ao invés de actionListener e gerava uma requisição não ajax entrava no meu método de editar. com isso resgatando o registro em edição limpando a lista.

<h:commandButton image="/imagens/adicionar.png"   action="#{BarControle.adicionarFilial}"  immediate="true"  >  
					            	<p:ajax  update="form:modalFilial" process="filiais"  immediate="true"  oncomplete="PF('modalFilial').show();"/>
 </h:commandButton>