[Demonstration 1]

[Buggy Method]
@Override
public String toString() {
    return "LineSegment2D_F64{" + "a=" + a + ", b=" + b + '}';
}

[Buggy Hunk]
return "LineSegment2D_F64{" +

[Patch]
return getClass().getSimpleName()+"{" +

[Demonstration 2]

[Buggy Method]
public static void main(String[] args) {
    if (args.length == 0) {
        showHelp();
    } else if (args.length < 4) {
        showHelp();
    } else {
        File file = new File("features");
        ArrayList<String> inputLines = new ArrayList<>();
        String outputFile;
        String line;
        if (file.exists()) {
            inputLines = getFileContentsAsLines("features");
            outputFile = null;
            boolean result = false;
            String[] toLower = null;
            label115: for (int hasLabel = 0; hasLabel < inputLines.size(); ++hasLabel) {
                String cps = (String) inputLines.get(hasLabel);
                toLower = cps.split(" ");
                outputFile = toLower[0];
                result = Boolean.parseBoolean(toLower[1]);
                for (int seq = 0; seq < PARAMETER_NAMES.length; ++seq) {
                    line = PARAMETER_NAMES[seq];
                    if (outputFile.equalsIgnoreCase(line)) {
                        switch(seq) {
                            case 0:
                                SINGLE_WORD = result;
                                continue label115;
                            case 1:
                                TWO_CONSECUTIVE_WORDS = result;
                                continue label115;
                            case 2:
                                SINGLE_POS_TAG = result;
                                continue label115;
                            case 3:
                                TWO_CONSECUTIVE_POS_TAGS = result;
                                continue label115;
                            case 4:
                                THREE_CONSECUTIVE_POS_TAGS = result;
                                continue label115;
                            case 5:
                                SINGLE_POS_TAG_AND_SINGLE_WORD = result;
                                continue label115;
                            case 6:
                                TWO_CONSECUTIVE_POS_TAGS_AND_SINGLE_WORD = result;
                                continue label115;
                            case 7:
                                TWO_CONSECUTIVE_WORDS_AND_SINGLE_POS_TAG = result;
                            default:
                                continue label115;
                        }
                    }
                }
            }
        }
        inputLines = getFileContentsAsLines(args[1]);
        outputFile = args[2];
        StringBuilder var16 = new StringBuilder();
        boolean var17 = false;
        if (args.length > 3 && args[3].equalsIgnoreCase("tolower")) {
            var17 = true;
        }
        boolean var18 = false;
        if (args[0].equalsIgnoreCase("-lbl")) {
            var18 = true;
        }
        new Observation();
        Sequence var20 = new Sequence();
        line = null;
        for (int lineNumber = 0; lineNumber < inputLines.size(); ++lineNumber) {
            line = (String) inputLines.get(lineNumber);
            if (var17) {
                line = line.toLowerCase();
            }
            StringTokenizer tok = new StringTokenizer(line, " \t\r\n");
            int len = tok.countTokens();
            if (len <= 0) {
                if (var20.size() > 0) {
                    for (int var21 = 0; var21 < var20.size(); ++var21) {
                        try {
                            Observation var19 = getFeatures(var20, var21);
                            for (int e = 0; e < var19.size(); ++e) {
                                var16.append((String) var19.get(e)).append(' ');
                            }
                            if (var18 && ((Observation) var20.get(var21)).size() > 1) {
                                var16.append((String) ((Observation) var20.get(var21)).get(((Observation) var20.get(var21)).size() - 1));
                            }
                            var16.append('\n');
                        } catch (Exception var15) {
                            var15.printStackTrace();
                            System.out.println("Error in line number = " + lineNumber);
                            return;
                        }
                    }
                    var16.append('\n');
                }
                var20.clear();
            } else {
                Observation obsr = new Observation();
                while (tok.hasMoreTokens()) {
                    obsr.add(tok.nextToken());
                }
                var20.add(obsr);
            }
        }
        writeFileContentsFromString(outputFile, var16.toString());
    }
}

[Buggy Hunk]
System.out.println("Error in line number = " + lineNumber);

[Patch]
System.out.println("Error in line number = " + lineNumber + "(" + var21 + ") : " + line + StringUtils.join(var20));

[Demonstration 3]

[Buggy Method]
public LocalEventBus publish(String address, Map<String, Object> message) {
    List<Calle<Map<String, Object>>> subs = this.subscribers.get(address);
    if (subs != null) {
        subs.forEach(subscriber -> {
            try {
                subscriber.call(message);
            } catch (Exception e) {
                if (this.errorHandler != null) {
                    this.errorHandler.call(e);
                }
            }
        });
    } else {
        if (this.warningHandler != null) {
            this.warningHandler.call("There are no subscribers for '" + address + "'!");
        }
    }
    return this;
}

[Buggy Hunk]
List<Calle<Map<String, Object>>> subs = this.subscribers.get(address);

[Patch]
List<Caller<Map<String, Object>>> subs = this.subscribers.get(address);