[Demonstration 1]

[Buggy Method]
@Override
public Object[][] getToolMetricsForHomePage(Date start, Date end) {
    Map<String, Integer> results = new HashMap<String, Integer>();
    for (TestRun r : testRunRepository.findByDateRange(start, end)) {
        TestSuite suite = testSuiteRepository.findByid(r.getTestSuite().getId());
        TestTool tool = testToolRepository.findByid(suite.getTestTool().getId());
        if (!results.containsKey(tool.getId().intValue())) {
            results.put(tool.getName(), tool.getGeneratedDataCount().intValue());
        }
    }
    Object[][] result = new Object[results.size()][2];
    int i = 0;
    result[i][0] = "Name";
    result[i][1] = "Number of Data Items";
    for (Entry<String, Integer> e : results.entrySet()) {
        i++;
        result[i][0] = e.getKey();
        result[i][1] = e.getValue();
    }
    return result;
}

[Buggy Hunk]
Object[][] result = new Object[results.size()][2];

[Patch]
Object[][] result = new Object[results.size()+1][2];

[Demonstration 2]

[Buggy Method]
public Map<String, Integer> getAllJoins() {
    TreeMap<String, Integer> joins = new TreeMap<String, Integer>();
    try {
        ResultSet rs = readJoins.executeQuery();
        while (rs.next()) {
            joins.put(rs.getString(0), rs.getInt(1));
        }
        rs.close();
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
    return joins;
}

[Buggy Hunk]
joins.put(rs.getString(0), rs.getInt(1));

[Patch]
joins.put(rs.getString(1), rs.getInt(2));

[Demonstration 3]

[Buggy Method]
public Object[] decode(IntSequence iseq) {
    Object[] res = new String[iseq.length() - 1];
    for (int i = 1; i < iseq.length(); i++) {
        res[i] = getDecodedSymbol(iseq.intAt(i));
    }
    return res;
}

[Buggy Hunk]
res[i] = getDecodedSymbol(iseq.intAt(i));

[Patch]
res[i-1] = getDecodedSymbol(iseq.intAt(i));