private TreeNode createTree(Classification raiz, Collection<Classification> lista) {
    TreeNode node = new DefaultTreeNode(raiz, null);
    TreeNode child = null;

    Collection<Classification> hijos = getChildren(raiz, lista);

    for (Classification hijo : hijos) {
      if (hijo.getClassificationList() != null) {
        child = createTree(hijo, lista);
        child.setParent(node);
      } else {
        child = new DefaultTreeNode(hijo, node);
        child.setParent(node);
      }
      // node.addChild(child);

    }
    return node;
  }
 /** Removes all child nodes of the supplied root node. */
 private void removeAllChildsOfRootNode(final TreeNode rootNode) {
   if ((rootNode != null) && (rootNode.getChildCount() > 0)) {
     final TreeNode[] array =
         rootNode.getChildren().toArray(new TreeNode[rootNode.getChildCount()]);
     for (TreeNode child : array) {
       child.setParent(null);
       child = null;
     }
   }
 }
  // Lo que se cambio para el Primefaces3.2
  private void createClassificationTree() {
    try {
      Classification raiz = classificationFacade.findRootByClient(getClient());
      classificationList = classificationFacade.getEagerClassificationListByClient(getClient());
      root = new DefaultTreeNode("root", null);

      TreeNode arbol = createTree(getRootFromClassificationList(raiz), getClassificationList());
      arbol.setExpanded(true);
      arbol.setParent(root);
      // root.getChildren().add(arbol);

      classificationList = null;

    } catch (GenericFacadeException ex) {
      Logger.getLogger(CrudUserphoneBean.class.getName()).log(Level.SEVERE, null, ex);
    }
  }