[Demonstration 1]

[Buggy Method]
@Override
public boolean updateData(Object obj) {
    User user = (User) obj;
    String query = "UPDATE user " + "SET  firstname = ?, lastname = ?, username=?, " + "email =?, password=? " + "WHERE userID = ?";
    try {
        statement = connect.getConnection().prepareStatement(query);
        statement.setString(1, user.getFirstname());
        statement.setString(2, user.getLastname());
        statement.setString(3, user.getUsername());
        statement.setString(4, user.getEmail());
        statement.setString(5, encryptPassword(user.getPassword()));
        statement.setInt(6, user.getUserID());
        statement.execute();
        return true;
    } catch (SQLException e) {
        System.out.println("Update Error");
        e.printStackTrace();
    }
    connect.close();
    return false;
}

[Buggy Hunk]
statement.setString(5, encryptPassword(user.getPassword()));

[Patch]
statement.setString(5, user.getPassword());

[Demonstration 2]

[Buggy Method]
public List<Role> getRoles() {
    return roles;
}

[Buggy Hunk]
public List<Role> getRoles() {

[Patch]
public Set<Role> getRoles() {

[Demonstration 3]

[Buggy Method]
private void criarPermissoes() throws Exception {
    String[] roles = { "ROLE_ADMIN", "ROLE_USER", "ROLE_ATENDENTE" };
    for (String r : roles) {
        Permissao permissao = new Permissao();
        permissao.setPermissao(r);
        permissaoService.save(permissao);
    }
}

[Buggy Hunk]
String[] roles = {"ROLE_ADMIN", "ROLE_USER", "ROLE_ATENDENTE"};

[Patch]
String[] roles = {"ROLE_ADMIN", "ROLE_USER", "ROLE_ATENDENTE", "ROLE_NONE"};