[Demonstration 1]

[Buggy Method]
@Test
public void ComponentTypeGetTest() {
    app.Session mockSession = mock(app.Session.class);
    mockSession.role = Role.Staff;
    when(req.getAttribute(app.Session.ATTRIBUTE_NAME)).thenReturn(mockSession);
    ComponentType mockct = mock(ComponentType.class);
    when(ctDAO.findById(1)).thenReturn(mockct);
    ComponentType ct = ComponentTypeController.getComponentType(1, req, res);
    verify(ctDAO, times(1)).findById(1);
    assertEquals(ct, mockct);
}

[Buggy Hunk]
verify(ctDAO, times(1)).findById(1);

[Patch]
verify(ctDAO, times(2)).findById(1);

[Demonstration 2]

[Buggy Method]
protected boolean fromParseAssignment(Assignment.AssignmentTyped assignment) {
    if (assignment.getType().equals(ObjectType.CONTEXT.toString())) {
        if (runAssignmentCommandContext(assignment.getName(), (Obj.Function) assignment.getValue(), assignment.getModifiers()) == null) {
            return false;
        }
    } else if (assignment.getType().equals(ObjectType.TOKEN_SPAN_FN.toString())) {
        if (runAssignmentCommandTokenSpanFn(assignment.getName(), (Obj.Function) assignment.getValue(), assignment.getModifiers()) == null) {
            return false;
        }
    } else if (assignment.getType().equals(ObjectType.STR_FN.toString())) {
        if (runAssignmentCommandStrFn(assignment.getName(), (Obj.Function) assignment.getValue(), assignment.getModifiers()) == null) {
            return false;
        }
    } else if (assignment.getType().equals(ObjectType.TOKEN_SPAN_STR_FN.toString().toString())) {
        if (runAssignmentCommandTokenSpanStrFn(assignment.getName(), (Obj.Function) assignment.getValue(), assignment.getModifiers()) == null) {
            return false;
        }
    } else if (assignment.getType().equals(ObjectType.ARRAY.toString())) {
        if (constructOrRunCommandArray(assignment.getModifiers(), assignment.getName(), assignment.getValue()) == null) {
            return false;
        }
    } else if (assignment.getType().equals(ObjectType.VALUE.toString())) {
        if (constructOrRunCommandValue(assignment.getModifiers(), assignment.getName(), assignment.getValue()) == null) {
            return false;
        }
    } else if (assignment.getType().equals(ObjectType.SEARCH.toString())) {
        if (runAssignmentCommandSearch(assignment.getName(), (Obj.Function) assignment.getValue(), assignment.getModifiers()) == null) {
            return false;
        }
    } else {
        return false;
    }
    return true;
}

[Buggy Hunk]
} else if (assignment.getType().equals(ObjectType.TOKEN_SPAN_STR_FN.toString().toString())) {

[Patch]
} else if (assignment.getType().equals(ObjectType.TOKEN_SPAN_STR_FN.toString())) {

[Demonstration 3]

[Buggy Method]
private void addGroups() throws Exception {
    testGroup = generateGroup("testGroup", defaultSlb, defaultSlb.getVirtualServers().get(1));
    insertedTestGroupId = groupRepo.add(testGroup).getId();
    // set virtual server full information
    testGroup.getGroupSlbs().get(0).setVirtualServer(defaultSlb.getVirtualServers().get(0));
    testGroup.getGroupSlbs().get(0).setSlbName(defaultSlb.getName());
    Assert.assertTrue(insertedTestGroupId > 0);
    for (int i = 0; i < 6; i++) {
        Group group = generateGroup("testGroup" + i, defaultSlb, defaultSlb.getVirtualServers().get(0));
        groupRepo.add(group);
    }
}

[Buggy Hunk]
testGroup.getGroupSlbs().get(0).setVirtualServer(defaultSlb.getVirtualServers().get(0));

[Patch]
testGroup.getGroupSlbs().get(0).setVirtualServer(defaultSlb.getVirtualServers().get(1));