code: public void crawlToOpen(TreePath path, ArrayList<BugLeafNode> bugLeafNodes, ArrayList<TreePath> treePaths) {
          for (int i = 0; i < getChildCount(path.getLastPathComponent()); i++) {
              if (!isLeaf(getChild(path.getLastPathComponent(), i))) {
                  for (BugLeafNode p : bugLeafNodes) {
                      if (p.matches((BugAspects) getChild(path.getLastPathComponent(), i))) {
                          tree.expandPath(path);
                          crawlToOpen(path.pathByAddingChild(getChild(path.getLastPathComponent(), i)), bugLeafNodes, treePaths);
                          break;
                      }
                  }
              } else {
                  for (BugLeafNode b : bugLeafNodes) {
                      if (getChild(path.getLastPathComponent(), i).equals(b)) {
                          tree.expandPath(path);
                          treePaths.add(path.pathByAddingChild(getChild(path.getLastPathComponent(), i)));
                      }
                  }
              }
          }
      }
docs: /*
  Recursively traverses the tree, opens all nodes matching any bug in the
  list, then creates the full paths to the bugs that are selected This
  keeps whatever bugs were selected selected when sorting DEPRECATED--Too
  Slow, use openPreviouslySelected