Duvida : RecursiveTreeNode

Estou tentando exibir um conjunto de classes que representam uma arvore com recursiveTreeNode do rich faces , o problema e que não estou entendendo como funciona os atributos , vi o exemplo do site , dei uma simplificada e rodou ate o momento que eu resolvi exibir a parte recursiva .
Apareceu um erro dizendo que eu não havia colocado o atributo root da maneira correta , entao eu queria saber o que eu coloco nesse atributo ?

Aqui o codigo da minha classe recursiva :

package bean;

import java.util.ArrayList;
import java.util.List;

public class Diretorio {
	private String nome;
	private String dono;
	
	private Diretorio pai;
	private List<Diretorio> subDiretorios;
	
	private static Integer i = 1;
	
	public Diretorio(Diretorio pai) {
		this.nome = "a"+i;
		i++;
		this.pai = pai;
		subDiretorios = new ArrayList<Diretorio>();
	}
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getDono() {
		return dono;
	}
	public void setDono(String dono) {
		this.dono = dono;
	}
	public Diretorio getPai() {
		return pai;
	}
	public void setPai(Diretorio pai) {
		this.pai = pai;
	}
	public List<Diretorio> getSubDiretorios() {
		return subDiretorios;
	}
	public void setSubDiretorios(List<Diretorio> subDiretorios) {
		this.subDiretorios = subDiretorios;
	}

	
	
}

Aqui o codigo do meu managed bean :


package managedbean;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.mapping.Array;

import bean.Diretorio;

public class DiretorioBean {
	private List<Diretorio> diretorios;

	public DiretorioBean() {
		
		diretorios = new ArrayList<Diretorio>();
		
		Diretorio d1 = new Diretorio(null);
		diretorios.add(d1);
		Diretorio d2 = new Diretorio(null);
		diretorios.add(d2);
		Diretorio d3 = new Diretorio(d1);
		d1.getSubDiretorios().add(d3);
		Diretorio d4 = new Diretorio(d1);
		d1.getSubDiretorios().add(d4);
		Diretorio d5 = new Diretorio(null);
		diretorios.add(d5);
		Diretorio d6 = new Diretorio(d5);
		d5.getSubDiretorios().add(d6);
		
		
		
	}
	
	public final List<Diretorio> getDiretorios() {
		return diretorios;
	}

	public final void setDiretorios(List<Diretorio> diretorios) {
		this.diretorios = diretorios;
	}
	
	
}

Abaixo o codigo da minha pagina :


<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<html>
	<head>
	</head>
	<body>
		<f:view>
			<h:form>
				<rich:tree switchType="client">
					<rich:treeNodesAdaptor id="dirs" nodes="#{diretorioBean.diretorios}" var="diretorio">
						<rich:treeNode>
							<h:outputText value="#{diretorio.nome}"/>
						</rich:treeNode>
						<rich:recursiveTreeNodesAdaptor id="dir" var="subDiretorio" root="#{diretorio.subDiretorios}" nodes="#{subDiretorio.subDiretorios}">
							<rich:treeNode>
								<h:outputText value="#{subDiretorio.nome}"/>
							</rich:treeNode>
						</rich:recursiveTreeNodesAdaptor>
					</rich:treeNodesAdaptor>
				</rich:tree>
			</h:form>
		</f:view>
	</body>
</html>

Abaixo o erro que ta aparecendo :


SEVERE: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /tree.jsp(16,6) Attribute root invalid for tag recursiveTreeNodesAdaptor according to TLD

Alguem por favor pode me ajudar ???