org_aspectj_util_UtilModuleTests_java
org.aspectj.util.FileUtil
public static int copyDir(File fromDir, File toDir, final String fromSuffix, String toSuffix, FileFilter delegate) throws IOException {
        String[] fromFiles;
        int slen;
        if (null == fromDir || !fromDir.canRead()) {
            return 0;
        }
        boolean haveSuffix = null != fromSuffix && 0 < fromSuffix.length();
        int n = slen = !haveSuffix ? 0 : fromSuffix.length();
        if (!toDir.exists()) {
            toDir.mkdirs();
        }
        if (!haveSuffix) {
            fromFiles = fromDir.list();
        } else {
            FilenameFilter filter = new FilenameFilter(){

                @Override
                public boolean accept(File dir, String name) {
                    return new File(dir, name).isDirectory() || name.endsWith(fromSuffix);
                }
            };
            fromFiles = fromDir.list(filter);
        }
        int result = 0;
        int MAX = null == fromFiles ? 0 : fromFiles.length;
        for (int i = 0; i < MAX; ++i) {
            String filename = fromFiles[i];
            File fromFile = new File(fromDir, filename);
            if (!fromFile.canRead()) continue;
            if (fromFile.isDirectory()) {
                result += FileUtil.copyDir(fromFile, new File(toDir, filename), fromSuffix, toSuffix, delegate);
                continue;
            }
            if (!fromFile.isFile()) continue;
            if (haveSuffix) {
                filename = filename.substring(0, filename.length() - slen);
            }
            if (null != toSuffix) {
                filename = filename + toSuffix;
            }
            File targetFile = new File(toDir, filename);
            if (null == delegate || delegate.accept(targetFile)) {
                FileUtil.copyFile(fromFile, targetFile);
            }
            ++result;
        }
        return result;
    }
 -> java.io.File.canRead(): boolean -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.io.File.exists(): boolean -> java.io.File.mkdirs(): boolean -> java.io.File.list(java.io.FilenameFilter): java.lang.String[] -> java.io.File.isDirectory(): boolean -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.canRead(): boolean -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.io.File.exists(): boolean -> java.io.File.mkdirs(): boolean -> java.io.File.list(java.io.FilenameFilter): java.lang.String[] -> java.io.File.isDirectory(): boolean -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.canRead(): boolean -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.io.File.exists(): boolean -> java.io.File.mkdirs(): boolean -> java.io.File.list(java.io.FilenameFilter): java.lang.String[] -> java.io.File.isDirectory(): boolean -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.canRead(): boolean -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.io.File.exists(): boolean -> java.io.File.mkdirs(): boolean -> java.io.File.list(java.io.FilenameFilter): java.lang.String[] -> java.io.File.isDirectory(): boolean -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.canRead(): boolean -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.io.File.exists(): boolean -> java.io.File.mkdirs(): boolean -> java.io.File.list(java.io.FilenameFilter): java.lang.String[] -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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.equals(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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.equals(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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.equals(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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.equals(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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.equals(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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.equals(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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.equals(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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.equals(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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.equals(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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.equals(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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.equals(java.lang.Object): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void
 [CALL] -> java.io.File.canRead(): boolean -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.io.File.exists(): boolean -> java.io.File.mkdirs(): boolean [CALL] [EXIT] -> java.io.File.list(java.io.FilenameFilter): java.lang.String[] [CALL] -> java.io.File.isDirectory(): boolean [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean [CALL] -> java.io.File.canRead(): boolean -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.io.File.exists(): boolean -> java.io.File.mkdirs(): boolean [CALL] [EXIT] -> java.io.File.list(java.io.FilenameFilter): java.lang.String[] [CALL] -> java.io.File.isDirectory(): boolean [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean [CALL] -> java.io.File.canRead(): boolean -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.io.File.exists(): boolean -> java.io.File.mkdirs(): boolean [CALL] [EXIT] -> java.io.File.list(java.io.FilenameFilter): java.lang.String[] [CALL] -> java.io.File.isDirectory(): boolean [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean [CALL] -> java.io.File.canRead(): boolean -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.io.File.exists(): boolean -> java.io.File.mkdirs(): boolean [CALL] [EXIT] -> java.io.File.list(java.io.FilenameFilter): java.lang.String[] [CALL] -> java.io.File.isDirectory(): boolean [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean [CALL] -> java.io.File.canRead(): boolean -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.io.File.exists(): boolean -> java.io.File.mkdirs(): boolean [CALL] [EXIT] -> java.io.File.list(java.io.FilenameFilter): java.lang.String[] [CALL] -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] -> java.io.File.isDirectory(): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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] [CALL] [EXIT] [CALL] [EXIT] -> java.io.File.equals(java.lang.Object): boolean [CALL] [EXIT] -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean [CALL] [CALL] [EXIT] -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean [CALL] [CALL] -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean [EXIT] [EXIT] [EXIT] -> java.io.File.isFile(): boolean [CALL] [CALL] -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int [EXIT] -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void [EXIT] [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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] [CALL] [EXIT] [CALL] [EXIT] -> java.io.File.equals(java.lang.Object): boolean [CALL] [EXIT] -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean [CALL] [CALL] [EXIT] -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean [CALL] [CALL] -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean [EXIT] [EXIT] [EXIT] -> java.io.File.isFile(): boolean [CALL] [CALL] -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int [EXIT] -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void [EXIT] [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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] [CALL] [EXIT] [CALL] [EXIT] -> java.io.File.equals(java.lang.Object): boolean [CALL] [EXIT] -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean [CALL] [CALL] [EXIT] -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean [CALL] [CALL] -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean [EXIT] [EXIT] [EXIT] -> java.io.File.isFile(): boolean [CALL] [CALL] -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int [EXIT] -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void [EXIT] [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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] [CALL] [EXIT] [CALL] [EXIT] -> java.io.File.equals(java.lang.Object): boolean [CALL] [EXIT] -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean [CALL] [CALL] [EXIT] -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean [CALL] [CALL] -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean [EXIT] [EXIT] [EXIT] -> java.io.File.isFile(): boolean [CALL] [CALL] -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int [EXIT] -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void [EXIT] [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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] [CALL] [EXIT] [CALL] [EXIT] -> java.io.File.equals(java.lang.Object): boolean [CALL] [EXIT] -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean [CALL] [CALL] [EXIT] -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean [CALL] [CALL] -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean [EXIT] [EXIT] [EXIT] -> java.io.File.isFile(): boolean [CALL] [CALL] -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int [EXIT] -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void [EXIT] [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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] [CALL] [EXIT] [CALL] [EXIT] -> java.io.File.equals(java.lang.Object): boolean [CALL] [EXIT] -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean [CALL] [CALL] [EXIT] -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean [CALL] [CALL] -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean [EXIT] [EXIT] [EXIT] -> java.io.File.isFile(): boolean [CALL] [CALL] -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int [EXIT] -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void [EXIT] [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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] [CALL] [EXIT] [CALL] [EXIT] -> java.io.File.equals(java.lang.Object): boolean [CALL] [EXIT] -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean [CALL] [CALL] [EXIT] -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean [CALL] [CALL] -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean [EXIT] [EXIT] [EXIT] -> java.io.File.isFile(): boolean [CALL] [CALL] -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int [EXIT] -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void [EXIT] [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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] [CALL] [EXIT] [CALL] [EXIT] -> java.io.File.equals(java.lang.Object): boolean [CALL] [EXIT] -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean [CALL] [CALL] [EXIT] -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean [CALL] [CALL] -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean [EXIT] [EXIT] [EXIT] -> java.io.File.isFile(): boolean [CALL] [CALL] -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int [EXIT] -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void [EXIT] [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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] [CALL] [EXIT] [CALL] [EXIT] -> java.io.File.equals(java.lang.Object): boolean [CALL] [EXIT] -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean [CALL] [CALL] [EXIT] -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean [CALL] [CALL] -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean [EXIT] [EXIT] [EXIT] -> java.io.File.isFile(): boolean [CALL] [CALL] -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int [EXIT] -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void [EXIT] [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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] [CALL] [EXIT] [CALL] [EXIT] -> java.io.File.equals(java.lang.Object): boolean [CALL] [EXIT] -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean [CALL] [CALL] [EXIT] -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean [CALL] [CALL] -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean [EXIT] [EXIT] [EXIT] -> java.io.File.isFile(): boolean [CALL] [CALL] -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int [EXIT] -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void [EXIT] [EXIT] -> java.io.File.canRead(): boolean -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): 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] [CALL] [EXIT] [CALL] [EXIT] -> java.io.File.equals(java.lang.Object): boolean [CALL] [EXIT] -> java.io.File.isDirectory(): boolean -> java.io.File.isFile(): boolean [CALL] [CALL] [EXIT] -> java.io.File.getParentFile(): java.io.File -> java.io.File.canWrite(): boolean [CALL] [CALL] -> java.io.File.canWrite(): boolean -> java.io.File.isDirectory(): boolean [EXIT] [EXIT] [EXIT] -> java.io.File.isFile(): boolean [CALL] [CALL] -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int -> java.io.OutputStream.write(byte[],int,int): void -> java.io.InputStream.read(byte[],int,int): int [EXIT] -> java.io.FileOutputStream.close(): void -> java.io.FileInputStream.close(): void [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT]