Duplicate component ID - JSF

Bom tarde pessoal,

Estou com um problema grosso no JSF, o famoso: “java.lang.IllegalStateException: Duplicate component ID”.

Creio que isso seja um bug do framework, em alguns momentos este erro aparece, principalmente em criação de conteúdo dinâmico.

Quando cria-se a árvore é criado alguns componentes no server “O framework cria por conta própria”. O fato é: Ele se perde com os próprios componentes que cria gera uma exception que em cascata gera erro de Javascript(No cliente) impossibilitando execução da iteração do cliente.

A forma de gerenciamento do JSF é muito ruim, eles poderiam ter inventado outra forma de gerenciar este tipo de ligação!

Detalhes do erro:

1º Acesso - OK
2º Acesso - Erro "Duplicate component ID ‘form_global:_id58’ found in view."
3º OK
4º OK
5º OK
6º Acesso - Erro “Duplicate component ID ‘form_global:_id80’ found in view.”

Verifique que os ids são diferentes a cada refresh da página
Este erro acontece aleatoriamente, pode não ocorre ou ocorrer constantemente.
Os componentes gerados por mim possuem seu próprio id, conforme abaixo:

<c:forEach var="bean" items="#{mgr.listaBean}">
<h:commandLink actionListener="#{mgr.acessarItem}" immediate="true" value="#{bean.value}" id="#{bean.id}" rendered="true"/>
</c:forEach>

Onde o bean.id é composto da seguinte forma: xxxChaveRegistro, ex: abc0001
Realmente, estou garantindo um único ID por componente renderizado!!!

Obrigado pela atenção!!!

Bom desculpe a brincadeira mas o bug está entre a cadeira e o teclado… kakakaka

Bom, é o seguinte o contexto jsf permite que apenas um componente seja criado em cada sessão, isto significa que se você cria um componente com id=‘mane’ dentro desta página pode haver apenas este mané durante toda a sessão, e como você colocou o id variável está dando problema, aconselho remover a propriedade id daí!.

:okok:

Infelizmente sua resposta está errada, depois de muita pesquisa é correto afirmar:

O tempo de processamento da JSTL é diferente da JSF. Sendo assim pode ocorrer duplicidade de componentes id na montagem da árvore. Não existe uma correção, isso é um erro grosso que irá permanecer o resto de suas vidas. Solução, não sei se é solução utilizar um framework para acabar com problemas de outros.

“Utilizem facelets”, a tag “repeat” deve ser utilizada lo lugar se “forEach”

<ui:repeat var=“bean” value="#{lista}">

no caso do c:if implemente com.sun.facelets.tag.TagHandler pois não existe compatível.