[RESOLVIDO] Problema ao atualizar componente na view JSF2 + Primefaces

Olá amigos do GUJ,

Estou com um problema que aparentemente seria fácil de resolver… mas não está sendo.
Na aplicação que estou trabalhando, temos uma árvore “<p:tree>” do Primefaces que referencia alguns documentos

&lt;p:tree 	value="#{arvoreControlador.root}" 
		var="doc" 
		selectionMode="single" 
		expanded="false" 
		styleClass="tree"  
		nodeSelectListener="#{documentoControlador.onNodeSelect}" 
		selection="#{arvoreControlador.selectedNode}"
		update="dt_criacao tipoDocumento setor editorHidden botoes mensagens dtPublicacaoMenu formTree titulo"&gt;

Ao clicar em um dos documentos, ele deve carregar o mesmo no editor, tarefa que já está sendo contemplada pelo update="" e pelo nodeSelectListener.
Porém, quando eu edito um documento e clico em um outro qualquer durante a edição, ele só consegue atualizar alguns desses componentes, o componente “titulo” por exemplo, fica com o mesmo valor de antes. Já debuggei o ManagedBean que controla ele e ele é atualizado, porém na View é como se ele ainda tivesse o valor antigo.
Essa é a parte que ele deveria atualizar e não atualiza:

[code]
<h:form prependId=“false” id=“formDocumento”>

		&lt;h:inputText id="titulo"  required="true" styleClass="titulog campoAlteradoListener"
					 label="Título do Documento" value="#{documentoControlador.documento.titulo}"
					 title="Título do Documento" maxlength="200" /&gt;[/code]

Dei uma olhada nesse artigo http://www.rponte.com.br/2011/06/07/limpando-a-arvore-de-componentes/ porém, não consegui implementar essa solução.
Queria saber se existe algum método pra “forçar” a aplicação a chamar o método “get” do componente e trazer o valor atualizado?

Desde já agradeço a ajuda =)

Consegui resolver o problema criando um método para “limpar” recursivamente os componentes da árvore.
No caso, limpar o Submitted Value e o Local Value para que na fase RENDER_RESPONSE o JSF seja obrigado a avaliar a EL e chamar o get() dos componentes.

private UIComponent limparComponentes(UIComponent raiz) { if (raiz instanceof EditableValueHolder) { EditableValueHolder evh = (EditableValueHolder) raiz; evh.setSubmittedValue(null); evh.setValue(null); evh.setLocalValueSet(false); evh.setValid(true); } UIComponent filho = null; UIComponent folha = null; Iterator&lt;UIComponent&gt; filhos = raiz.getFacetsAndChildren(); while(filhos.hasNext() && folha == null) { filho = filhos.next(); folha = limparComponentes(filho); } return null; }
https://gist.github.com/3351525

Chamo esse método dessa forma:

limparComponentes(FacesContext.getCurrentInstance().getViewRoot());

Não sei se é recomendado fazer isso, mas foi a única solução encontrada no sistema que estou trabalhando, pois a navegação não pode ser alterada.