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()); } } }