[Demonstration 1]

[Buggy Method]
private int makeUnprocessedFilesFinal(File directory) throws MojoExecutionException {
    File[] jarFiles = directory.listFiles(unprocessedJarFileFilter);
    getLog().debug("makeUnprocessedFilesFinal in " + directory + " found " + jarFiles.length + " file(s) to rename");
    if (jarFiles.length == 0) {
        return 0;
    }
    for (File unprocessedJarFile : jarFiles) {
        File finalJar = toProcessFile(unprocessedJarFile);
        ioUtil.deleteFile(finalJar);
        ioUtil.renameTo(unprocessedJarFile, finalJar);
    }
    return jarFiles.length;
}

[Buggy Hunk]
private int makeUnprocessedFilesFinal( File directory )

[Patch]
protected int makeUnprocessedFilesFinal(File directory)

[Demonstration 2]

[Buggy Method]
private static void traverse(File file, FileVisitor visitor) {
    if (file.isDirectory()) {
        File[] childs = file.listFiles();
        if (childs.length > 0) {
            for (int i = 0; i < childs.length; i++) {
                File child = childs[i];
                traverse(child, visitor);
            }
        }
    } else {
        visitor.visit(file);
    }
}

[Buggy Hunk]
private static void traverse(File file, FileVisitor visitor) {

[Patch]
public static void traverse(File file, FileVisitor visitor) {

[Demonstration 3]

[Buggy Method]
private static boolean isElidableControl(int ch) {
    if (ch < 0x0020) {
        return true;
    } else if ((ch >= 0x80) && (ch < 0x00A0)) {
        return true;
    } else if ((ch >= 0x2000) && (ch <= 0x206F)) {
        if ((ch >= 0x200B) && (ch <= 0x200F)) {
            return true;
        } else if ((ch >= 0x2028) && (ch <= 0x202E)) {
            return true;
        } else if ((ch >= 0x2066) && (ch <= 0x206F)) {
            return true;
        } else {
            return ch == 0x2060;
        }
    } else {
        return false;
    }
}

[Buggy Hunk]
} else if ((ch >= 0x2066) && (ch <= 0x206F)) {

[Patch]
} else if (ch >= 0x2066) {