diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/RoleAdapter.java b/model/jpa/src/main/java/org/keycloak/models/jpa/RoleAdapter.java index 39e24c3bf1..0f409a8c41 100755 --- a/model/jpa/src/main/java/org/keycloak/models/jpa/RoleAdapter.java +++ b/model/jpa/src/main/java/org/keycloak/models/jpa/RoleAdapter.java @@ -107,10 +107,7 @@ public class RoleAdapter implements RoleModel, JpaModel { @Override public void removeCompositeRole(RoleModel role) { RoleEntity entity = RoleAdapter.toRoleEntity(role, em); - Iterator it = getEntity().getCompositeRoles().iterator(); - while (it.hasNext()) { - if (it.next().equals(entity)) it.remove(); - } + getEntity().getCompositeRoles().remove(entity); } @Override diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RoleEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RoleEntity.java index a2738de2fe..49264a5953 100755 --- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RoleEntity.java +++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RoleEntity.java @@ -31,8 +31,8 @@ import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.persistence.UniqueConstraint; -import java.util.ArrayList; -import java.util.Collection; +import java.util.HashSet; +import java.util.Set; /** * @author Bill Burke @@ -89,7 +89,7 @@ public class RoleEntity { @ManyToMany(fetch = FetchType.LAZY, cascade = {}) @JoinTable(name = "COMPOSITE_ROLE", joinColumns = @JoinColumn(name = "COMPOSITE"), inverseJoinColumns = @JoinColumn(name = "CHILD_ROLE")) - private Collection compositeRoles = new ArrayList(); + private Set compositeRoles = new HashSet<>(); public String getId() { return id; @@ -133,11 +133,11 @@ public class RoleEntity { this.scopeParamRequired = scopeParamRequired; } - public Collection getCompositeRoles() { + public Set getCompositeRoles() { return compositeRoles; } - public void setCompositeRoles(Collection compositeRoles) { + public void setCompositeRoles(Set compositeRoles) { this.compositeRoles = compositeRoles; }