The poor documentation make it very hard to do a simple operation like programatically expand a node in the tree.
This is my code:
TreeNode<Auto> node = findNode(bean.getAutoTreeNode(), auto);
List<Integer> ids = new ArrayList<Integer>();
ids.add(node.getData().hashCode());
while (node != null) {
 node = node.getParent();
 if (node != null && node.getData() != null) {
 ids.add(node.getData().hashCode());
 }
}
Collections.reverse(ids);
ListRowKey<Integer> rowKey = new ListRowKey<Integer>(ids); TreeState state = (TreeState) tree.getComponentState(); state.expandNode(tree, rowKey);
Thos throws this exception in the row where I am call expandNode: 
09:50:03,366 ERROR [STDERR] java.lang.ClassCastException: java.lang.Integer cannot be cast to org.richfaces.model.StackingTreeMode 
l$Key 
09:50:03,366 ERROR [STDERR] at org.richfaces.model.StackingTreeModel.doSetupKey(StackingTreeModel.java:137) 
09:50:03,366 ERROR [STDERR] at org.richfaces.model.StackingTreeModel.setupKey(StackingTreeModel.java:175) 
09:50:03,366 ERROR [STDERR] at org.richfaces.model.StackingTreeModel.walk(StackingTreeModel.java:357) 
09:50:03,366 ERROR [STDERR] at org.richfaces.model.StackingTreeModel.walkModel(StackingTreeModel.java:455) 
09:50:03,366 ERROR [STDERR] at org.richfaces.component.UITree.walkModel(UITree.java:420) 
09:50:03,366 ERROR [STDERR] at org.richfaces.component.state.TreeState.visitNodes(TreeState.java:211) 
09:50:03,366 ERROR [STDERR] at org.richfaces.component.state.TreeState.expandNode(TreeState.java:273) 
09:50:03,366 ERROR [STDERR] at com.sia.shell.creditagricole.TreeBean.openTree(TreeBean.java:73) 
09:50:03,366 ERROR [STDERR] at com.sia.shell.creditagricole.TreeBean.setTree(TreeBean.java:32)