[Demonstration 1]

[Buggy Method]
@Override
@NonNull
public Iterator<String> iterator() {
    return new ArrayIterator<>(ARGS);
}

[Buggy Hunk]
return new ArrayIterator<>(ARGS);

[Patch]
return new ArrayIterator<>(ARGS, compressed ? 1 : 0);

[Demonstration 2]

[Buggy Method]
private SubscriberSaver selectSubscriberSaver(File outputFile) {
    SubscriberSaver saver;
    if (FilenameUtils.getExtension(outputFile.getName()).matches("xlsx?")) {
        saver = new XSLSubscriberSaver();
    } else {
        saver = new CSVSubscriberSaver();
    }
    return saver;
}

[Buggy Hunk]
if (FilenameUtils.getExtension(outputFile.getName()).matches("xlsx?")) {

[Patch]
if (FilenameUtils.getExtension(outputFile.getName()).matches(XLS_EXTENSIONS)) {

[Demonstration 3]

[Buggy Method]
public void simpleHashJoin(String dict, String doc, String out) {
    try {
        this.writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(out), FMT));
        InputStreamReader in = new InputStreamReader(new FileInputStream(dict), FMT);
        CSVReader reader = new CSVReader(in);
        String[] dictLine;
        Scanner sc = new Scanner(new FileInputStream(doc), FMT);
        String docWord;
        while ((dictLine = reader.readNext()) != null) {
            this.dict.insert(dictLine[CHN_IDX], dictLine[0]);
        }
        reader.close();
        while (sc.hasNext()) {
            docWord = sc.next();
            if (docWord.contains("/n")) {
                docWord = docWord.substring(0, docWord.indexOf('/'));
                if (doc.length() != 0)
                    this.probeAndInsert(docWord, docWord, 0);
            }
        }
        sc.close();
        this.writer.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

[Buggy Hunk]
this.dict.insert(dictLine[CHN_IDX], dictLine[0]);

[Patch]
this.dict.put(dictLine[CHN_IDX], dictLine[0]);