Primefaces Tree não atualiza

Boa tarde pessoal,

Estou com um probleminha no Tree do primefaces…

Estou em um cadastro de contas contabeis e precisaria alutalizar além de um combo, um tree.

A questão é que o combo atualiza corretamente ao ponto que o tree não atualiza.

Estou checando e no metodo que atualiza o tree, ele está recebendo o List com todos os componentes, inclusive o ultimo que foi adicionado… Sei que a lista está certa, pois como podem ver na imagem, o combo é atualizado mas o tree não.

O mais estranho é que ele só atualiza com os novos nodes quando paro e inicio o tomcat… nem dando refresh na pagina ele funciona…

Estou usando o Primefaces 3M1 mas acontece também no 2.2.1

Alguém ja passou por isso ou tem uma idéia?

Abraço e obrigado!

Rodrigo


<p:commandButton id="btnCad" update="msgs,txtnivelextenso,chkativarelatoriodespesa,cmbContapai,txtNome,Tree,msgOk" actionListener="#{contaContabilMB.cadastrar}" ajax="true" value="Cadastrar"/>

 <p:tree id="Tree" value="#{contaContabilMB.root}" var="node" selectionMode="single" selection="#{contaContabilMB.selectedNode}" update="msgs" nodeSelectListener="#{contaContabilMB.onNodeSelected}">         
                                <p:treeNode>  
                                    <h:outputText value="#{node}"/>  
                                </p:treeNode>  
                            </p:tree>  

private void atualizaTree(){
                
        System.out.println("Tamanho do List da Tree :"+lcc.size());
        
        boolean inicio = false;
         
        root = null;
         
        root = new DefaultTreeNode("root", null);
        
       TreeNode raiz0 = null;
       TreeNode raiz1 = null;
       TreeNode raiz2 = null;
       TreeNode raiz3 = null;
        
        for (int i = 0; i < lcc.size(); i++) {
            
            Contacontabil ccont0 = lcc.get(i);
            if(ccont0.getNivel()==1){

                raiz0 = new DefaultTreeNode(ccont0.getNivelextenso()+" - "+ccont0.getNome(), root);

                Collection<Contacontabil> listaContas = ccont0.getContacontabilCollection();
                
                for (Iterator<Contacontabil> it = listaContas.iterator(); it.hasNext();) {
                        
                        Contacontabil ccont3 = it.next();
                        
                        if(ccont3.getNivel()==2){
                        raiz1 = new DefaultTreeNode(ccont3.getNivelextenso()+" - "+ccont3.getNome(), raiz0);
                        
                        
                                Collection<Contacontabil> listaContas1 = ccont3.getContacontabilCollection(); 
                                for (Iterator<Contacontabil> it1 = listaContas1.iterator(); it1.hasNext();) {

                                    Contacontabil contacontabil = it1.next();
                                    
                                    if(contacontabil.getNivel()==3){
                                                
                                            raiz2 = new DefaultTreeNode(contacontabil.getNivelextenso()+" - "+contacontabil.getNome(), raiz1);
                                    
                                                   Collection<Contacontabil> listaContas2 = contacontabil.getContacontabilCollection();
                                                   for (Iterator<Contacontabil> it2 = listaContas2.iterator(); it2.hasNext();) {
                                                
                                                            Contacontabil contacontabil1 = it2.next();
                                                
                                                            if(contacontabil1.getNivel()==4){

                                                                raiz3 = new DefaultTreeNode(contacontabil1.getNivelextenso()+" - "+contacontabil1.getNome(), raiz2);

                                                                Collection<Contacontabil> listaContas3 = contacontabil1.getContacontabilCollection();
                                                                for (Iterator<Contacontabil> it3 = listaContas3.iterator(); it3.hasNext();) {
                                                                        
                                                                        Contacontabil contacontabil2 = it3.next();
                                                                        System.out.println("######################### - "+contacontabil2.getNivel().toString());

                                                                        if(contacontabil2.getNivel()==5){
                                                                                TreeNode raiz4 = new DefaultTreeNode(contacontabil2.getNivelextenso()+" - "+contacontabil2.getNome(), raiz3);
                                                                        }
                                                                    
                                                                   }
                                                                
                                                            }
                                            
                                                     }
                                    
                                              }
                                    
                                      }
                             }
                     }
             }
        }
    }