[Demonstration 1]

[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 2]

[Buggy Method]
@GET
@Path("/profemons/{userId}")
public List<Profemon> getUserProfemons(@PathParam("userId") int userId) {
    return userBusiness.getUserProfemons(userId);
}

[Buggy Hunk]
public List<Profemon> getUserProfemons (@PathParam("userId") int userId) {

[Patch]
public List<ProfemonCapturadoResult> getUserProfemons (@PathParam("userId") int userId) {

[Demonstration 3]

[Buggy Method]
@Override
public List<BankEntity> findAll() throws BusinessException {
    Connection connection = null;
    try {
        connection = connectionFactory.getConnection();
        String sql = "SELECT * FROM bankentity";
        PreparedStatement statement = connection.prepareStatement(sql);
        ResultSet result = statement.executeQuery();
        List<BankEntity> bankEntitys = new ArrayList<>();
        while (result.next()) {
            BankEntity bankEntity = new BankEntity(result.getInt("bankEntityID"), result.getString("name"), result.getInt("bankCode"), result.getDate("creationDate"), result.getString("address"), result.getString("ctc"));
            bankEntitys.add(bankEntity);
        }
        statement.close();
        return bankEntitys;
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    } finally {
        if (connection != null) {
            connectionFactory.close(connection);
        }
    }
}

[Buggy Hunk]
result.getDate("creationDate"),

[Patch]
new java.util.Date(result.getDate("creationDate").getTime()),