JSF-PrimeFaces - Erro Na inserção de <p:tab> Dinâmico

Olá amigos, estou com um problema que fazem dois dias que estou a procura de soluções e nada de encontrar e solucionar.

Estou desenvolvendo uma aplicação que precisa ser extremamente genérica e um dos requisitos é gerar Tabs genéricos, sendo assim, fui para linha de cód. ao invés de xhtml para poder gerar os tabs.

Bom o cód. de geração está correto e ele está inserindo certinho na tela, o problema ocorre quando eu tento gerar o segundo tab, quando o ajax da refresh no componente ele perde as propriedades de texto do tab anterior, e gera a seguinte exceção:

[quote]Abr 17, 2014 9:17:44 AM com.sun.faces.application.view.FaceletPartialStateManagementStrategy saveDynamicActions
Advertência: Unable to save dynamic action with clientId ‘formTelas:tabTelaPrincipal:dataTableClientesRapido:colunasClientesRapido:textoConteudoClientesRapido’ because the UIComponent cannot be found
Abr 17, 2014 9:17:44 AM com.sun.faces.application.view.FaceletPartialStateManagementStrategy saveDynamicActions
Advertência: Unable to save dynamic action with clientId ‘formTelas:tabTelaPrincipal:dataTableClientesRapido:colunasClientesRapido:headerClientesRapido’ because the UIComponent cannot be found[/quote]

Agora vou passar as linhas de códigos:

xhtml de click para gerar os tabs (menus):

Ele entra em uma classe que controla toda geração de menus, e esses dois chamam as classes que geram as Tabs;

<h:commandButton actionListener="#{telaPrincipal.clientesRapido}" ajax="false" title="Clientes" image="resources/images/iconsTopo/2.png" styleClass="img-responsive menuIcon separadorMenu"/> <h:commandButton actionListener="#{telaPrincipal.produtosRapido}" ajax="false" title="Produtos" image="resources/images/iconsTopo/4.png" styleClass="img-responsive menuIcon"/>

Código de geração da Datatable:

private void gerarTab() {
		this.inicio = new Tab();
		this.inicio.setTitle(getTituloTab());
		this.inicio.setId("tab" + getId());
//		this.inicio.setTransient(true);
		this.inicio.setClosable(true);

}


public void gerarTabela() {

		// <p:dataTable var="o" style="width:100%;" resizableColumns="true"
		// value="#{bBuscaCliente.lista}" scrollable="true"
		// id="dataTable1">

		tabela = new DataTable();
		tabela.setVar("o");
		tabela.setResizableColumns(true);
		tabela.setScrollable(true);
		tabela.setId("dataTable" + getId());
		tabela.setRowIndexVar("rowIndexTeste");

		tabela.setValueExpression("value", CControleGeral.criarValueExpression(
				getBeanTabela(), List.class));

		// <p:columns value="#{bBuscaCliente.coluna}" var="c">
		// <f:facet name="header">
		// <h:outputText value="#{c.header}" />
		// </f:facet>
		//
		// <h:outputText value="#{o[c.property]}" />
		// </p:columns>

		colunas = (Columns) FacesContext.getCurrentInstance().getApplication()
				.createComponent(Columns.COMPONENT_TYPE);
		colunas.setVar("c");
		colunas.setId("colunas" + getId());
		colunas.setValueExpression("value", CControleGeral
				.criarValueExpression(getBeanTabelaColuna(), List.class));

		HtmlOutputText textoHeader = (HtmlOutputText) FacesContext
				.getCurrentInstance().getApplication()
				.createComponent(HtmlOutputText.COMPONENT_TYPE);
		textoHeader.setId("header" + getId());
		textoHeader.setValueExpression("value", CControleGeral
				.criarValueExpression("#{c.header}", String.class));
		colunas.getFacets().put("header", textoHeader);

		HtmlOutputText textoConteudo = (HtmlOutputText) FacesContext
				.getCurrentInstance().getApplication()
				.createComponent(HtmlOutputText.COMPONENT_TYPE);
		textoConteudo.setId("textoConteudo" + getId());
		textoConteudo.setValueExpression("value", CControleGeral
				.criarValueExpression("#{o[c.property]}", String.class));

		colunas.getChildren().add(textoConteudo);

		tabela.getChildren().add(colunas);
	}

public void gerarTabelaDinamica() {

		gerarTab();
		gerarTabela();

		inicio.getChildren().add(tabela);

		// Tabela Principal
		FacesContext.getCurrentInstance().getViewRoot()	.findComponent(":formTelas:tabTelaPrincipal")l.getChildren().add(inicio);

	}

O código esta funcionando, mas quando gera duas tabs ao mesmo tempo ele da pau … e gera a exceção acima comentado, se alguém puder me dar uma LUZ, estou precisando :smiley:

Consegui encontrar uma solução, e ela é até que um tanto simples… basta atualizar o Mojarra … estava utilizando a versão 2.2.1 …

fui ate o site e baixei a ultima versão a 2.2.6:

https://maven.java.net/content/repositories/releases/org/glassfish/javax.faces/2.2.6/javax.faces-2.2.6.jar

E tudo voltou ao normal :smiley: