Memory leak TreeNode Primefaces

Bom dia pessoal,

Estou tendo problemas de memoria durante a utilização do TreeNode do primefaces e gostaria de auxilio para solução.
Passei algumas semanas já buscando a origem do memory leak, imaginava que estava no algorítimo gerador do tree que utiliza recursividade em cima de hashMaps, porem depois de muito estudo em cima verifiquei que o problema não estava no algorítimo e sim na utilização do TreeNode.

No código abaixo a variável nodoPai, que é utilizada pelo componente do primefaces para geração do TreeView não é finalizada quando o usuário fecha a aba do browser ou fecha o browser, enfim… e isso faz com que o GC identifique a variável como tendo ainda uma instancia dentro da aplicação, assim a variável que ocupa em media 150mb de memoria fica em memoria para sempre.

Se alguém tiver alguma opinião do que devo fazer agradeço…

    [code] private TreeNode nodoPai;
private List<Leiaute> leiautes;

@Override
public String pesquisa() {
	
	mapEscrituracao = ((IAppFacade)getServiceFacade()).recuperaEscrituracao(context, (EscrituracaoDTO)entidadePlc, null, null);
	
	List<LeiauteBaseEntity> root = new ArrayList<LeiauteBaseEntity>();
	for(LinkedHashMap<Long, LeiauteBaseEntity> desc : mapEscrituracao.values()){
		if(desc.values() != null){
			Class classeAnterior = Object.class;
			for (LeiauteBaseEntity entidadeRoot : desc.values()) {
				if(!classeAnterior.equals(entidadeRoot.getClass())){
					entidadeRoot.setMostraColunas(Boolean.TRUE);
				}
				classeAnterior = entidadeRoot.getClass();
			}
		}
		root.addAll(desc.values());
		//Popula os dados nas colunas
		GenericsEntityUtils.populaDadosColunasEntidade(root);
	}
	//Monta a arvore para exibicao
	nodoPai = new AuditorTreeNode("Root", null);
 montaArvorePaiRecursivo(nodoPai, root);
 return pesquisaApos();

}[/code]

Resolvi limpando as variáveis em um método anotado com @Destroy

Não é a melhor forma, mas por hora resolvera meu problema…