[Demonstration 1]

[Buggy Method]
@org.junit.Test
public void testArraySum() {
    System.out.println("arraySum");
    double[] vals = new double[] { 2, 4, 8 };
    double expResult = 14;
    double result = SimpleStuff.arraySum(vals);
    assertEquals(expResult, result, 0.0);
}

[Buggy Hunk]
double[] vals = new double[]{2, 4, 8};

[Patch]
double[] vals = new double[]{2, 4, 9};

[Demonstration 2]

[Buggy Method]
public void service(HttpServletRequest req, HttpServletResponse resp) {
    resp.setContentType("text/html");
    PrintWriter out = null;
    try {
        out = resp.getWriter();
    } catch (IOException e) {
        e.printStackTrace();
    }
    boolean res = book.addBook("Test", "Test");
    if (res) {
        out.println("<html><body>Ajout reussi</body></html>");
    } else {
        out.println("<html><body>Ajout non reussi</body></html>");
    }
}

[Buggy Hunk]
boolean res = book.addBook("Test", "Test");

[Patch]
boolean res = book.addBook(new Author("Test"), "Test");

[Demonstration 3]

[Buggy Method]
static <T extends Comparable<T>> int getCount(ArrayList<T> items) {
    if (items.size() <= 1)
        return 0;
    else if (items.size() > 2)
        Collections.sort(items);
    int count = 0;
    T lastKey = items.get(0);
    int lastKeyCount = 0;
    for (int i = 0; i < items.size(); i++) {
        if (lastKey != items.get(i)) {
            count += (lastKeyCount * (lastKeyCount - 1)) / 2;
            lastKey = items.get(i);
            lastKeyCount = 0;
        }
        lastKeyCount++;
    }
    return count;
}

[Buggy Hunk]
if (lastKey != items.get(i)){

[Patch]
if (lastKey.compareTo(items.get(i)) != 0){