org_apache_struts2_StrutsSpringJUnit4TestCaseTest_java
org.apache.struts2.convention.DefaultClassFinder
private void scanDir(File dir, List<String> classNames, String packageName) {
        File[] files;
        for (File file : files = dir.listFiles()) {
            if (file.isDirectory()) {
                this.scanDir(file, classNames, packageName + file.getName() + ".");
                continue;
            }
            if (!file.getName().endsWith(".class")) continue;
            String name = file.getName();
            name = name.replaceFirst(".class$", "");
            classNames.add(StringUtils.removeStart(packageName, "WEB-INF.classes.") + name);
        }
    }
 -> java.io.File.listFiles(): java.io.File[] -> java.io.File.isDirectory(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.io.File.getName(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.io.File.listFiles(): java.io.File[] -> java.io.File.isDirectory(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.io.File.getName(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.io.File.listFiles(): java.io.File[] -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.io.File.getName(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.io.File.listFiles(): java.io.File[] -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.io.File.getName(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.io.File.listFiles(): java.io.File[] -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean
 [CALL] -> java.io.File.listFiles(): java.io.File[] -> java.io.File.isDirectory(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.io.File.getName(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] -> java.io.File.listFiles(): java.io.File[] -> java.io.File.isDirectory(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.io.File.getName(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] -> java.io.File.listFiles(): java.io.File[] -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String [CALL] [CALL] -> java.lang.CharSequence.length(): int [EXIT] [CALL] -> java.lang.CharSequence.length(): int [EXIT] -> java.lang.String.startsWith(java.lang.String): boolean [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String [CALL] [CALL] -> java.lang.CharSequence.length(): int [EXIT] [CALL] -> java.lang.CharSequence.length(): int [EXIT] -> java.lang.String.startsWith(java.lang.String): boolean [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.io.File.getName(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] -> java.io.File.listFiles(): java.io.File[] -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String [CALL] [CALL] -> java.lang.CharSequence.length(): int [EXIT] [CALL] -> java.lang.CharSequence.length(): int [EXIT] -> java.lang.String.startsWith(java.lang.String): boolean [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String [CALL] [CALL] -> java.lang.CharSequence.length(): int [EXIT] [CALL] -> java.lang.CharSequence.length(): int [EXIT] -> java.lang.String.startsWith(java.lang.String): boolean [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String [CALL] [CALL] -> java.lang.CharSequence.length(): int [EXIT] [CALL] -> java.lang.CharSequence.length(): int [EXIT] -> java.lang.String.startsWith(java.lang.String): boolean [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean [EXIT] -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String [CALL] [CALL] -> java.lang.CharSequence.length(): int [EXIT] [CALL] -> java.lang.CharSequence.length(): int [EXIT] -> java.lang.String.startsWith(java.lang.String): boolean [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.io.File.getName(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] -> java.io.File.listFiles(): java.io.File[] -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String [CALL] [CALL] -> java.lang.CharSequence.length(): int [EXIT] [CALL] -> java.lang.CharSequence.length(): int [EXIT] -> java.lang.String.startsWith(java.lang.String): boolean [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean [EXIT] -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String [CALL] [CALL] -> java.lang.CharSequence.length(): int [EXIT] [CALL] -> java.lang.CharSequence.length(): int [EXIT] -> java.lang.String.startsWith(java.lang.String): boolean [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String [CALL] [CALL] -> java.lang.CharSequence.length(): int [EXIT] [CALL] -> java.lang.CharSequence.length(): int [EXIT] -> java.lang.String.startsWith(java.lang.String): boolean [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.getName(): java.lang.String -> java.lang.String.replaceFirst(java.lang.String,java.lang.String): java.lang.String [CALL] [CALL] -> java.lang.CharSequence.length(): int [EXIT] [CALL] -> java.lang.CharSequence.length(): int [EXIT] -> java.lang.String.startsWith(java.lang.String): boolean [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT] [EXIT]