EDIT its worked
group.getUsers().forEach(user -> {
user.removeGroup(group);
privilegeRepository.findAll().stream().
filter(privilege -> privilege.getName().startsWith(slugname.toUpperCase()))
.forEach(privilege -> {
user.removePrivilege(privilege);
privilegeRepository.delete(privilege);
});
});
I have nested for-loops and I want to replace that for-loops with a forEach:
for (User user : group.getUsers()) {
user.removeGroup(group);
for(Privilege privilege : user.getPrivileges()){
if (privilege.getName().startsWith(slugname.toUpperCase())){
user.removePrivilege(privilege);
privilegeRepository.delete(privilege);
}
}
}
to
group.getUsers().forEach(user -> {
user.removeGroup(group);
user.getPrivileges().stream().filter(privilege -> privilege.getName().startsWith(slugname.toUpperCase()))
.forEach(privilege -> {
user.removePrivilege(privilege);
privilegeRepository.delete(privilege);
});
});
And it throws a exception:
java.util.ConcurrentModificationException