diff --git a/common/src/main/java/org/keycloak/common/util/ConcurrentMultivaluedHashMap.java b/common/src/main/java/org/keycloak/common/util/ConcurrentMultivaluedHashMap.java index 125e51ade781..703ef9146f57 100755 --- a/common/src/main/java/org/keycloak/common/util/ConcurrentMultivaluedHashMap.java +++ b/common/src/main/java/org/keycloak/common/util/ConcurrentMultivaluedHashMap.java @@ -18,6 +18,7 @@ package org.keycloak.common.util; import java.util.List; +import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; @@ -28,6 +29,15 @@ @SuppressWarnings("serial") public class ConcurrentMultivaluedHashMap extends ConcurrentHashMap> implements MultivaluedMap { + public ConcurrentMultivaluedHashMap() { + } + + public ConcurrentMultivaluedHashMap(Map> map) { + if (map == null) { + throw new IllegalArgumentException("Map can not be null"); + } + putAll(map); + } @Override public List createListInstance() { diff --git a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/entities/CachedRealm.java b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/entities/CachedRealm.java index bbc0627de031..e1dd4a1b1f21 100755 --- a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/entities/CachedRealm.java +++ b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/entities/CachedRealm.java @@ -696,7 +696,7 @@ public MultivaluedMap getComponentsByParent() { } public MultivaluedMap getComponentsByParentAndType() { - return new MultivaluedHashMap<>(componentsByParentAndType); + return new ConcurrentMultivaluedHashMap<>(componentsByParentAndType); } public Map getComponents() {