private static void listAllFiles(Collection<File> result, Folder folder) {
    for (Folder f : folder.getSubFolders()) {
      listAllFiles(result, f);
    }

    Server s = folder.getServer();
    TypeCollection types = s.getTypes();

    // find items in this folder
    for (Object i : folder.getItems(types.FILE)) {
      File f = (com.starteam.File) i;
      try {
        // This sometimes throws... deep inside starteam =(
        result.add(f);
      } catch (RuntimeException e) {
        // todo logger.println("Exception in listAllFiles: "
        // + e.getLocalizedMessage());
      }
    }
  }