diff --git a/integration/client-cli/admin-cli/src/main/java/org/keycloak/client/registration/cli/ReflectionUtil.java b/integration/client-cli/admin-cli/src/main/java/org/keycloak/client/registration/cli/ReflectionUtil.java index 0f959e0a906..24a47bf505d 100644 --- a/integration/client-cli/admin-cli/src/main/java/org/keycloak/client/registration/cli/ReflectionUtil.java +++ b/integration/client-cli/admin-cli/src/main/java/org/keycloak/client/registration/cli/ReflectionUtil.java @@ -436,16 +436,13 @@ public class ReflectionUtil { } public static String getTypeString(Type type, Field field) { - Class clazz = null; if (type == null) { if (field == null) { throw new IllegalArgumentException("type == null and field == null"); } type = field.getGenericType(); } - if (type instanceof Class) { - clazz = (Class) type; - } else if (type instanceof ParameterizedType) { + if (type instanceof ParameterizedType) { StringBuilder sb = new StringBuilder(); String rtype = getTypeString(((ParameterizedType) type).getRawType(), null); @@ -463,6 +460,12 @@ public class ReflectionUtil { return sb.toString(); } + if (!(type instanceof Class)) { + throw new IllegalArgumentException("unsupported type " + type.getClass().getName()); + } + + Class clazz = (Class) type; + if (CharSequence.class.isAssignableFrom(clazz)) { return "string"; } else if (Integer.class.isAssignableFrom(clazz) || int.class.isAssignableFrom(clazz)) { diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/ClientAdapter.java b/model/jpa/src/main/java/org/keycloak/models/jpa/ClientAdapter.java index d422c73b236..8e90f976db7 100755 --- a/model/jpa/src/main/java/org/keycloak/models/jpa/ClientAdapter.java +++ b/model/jpa/src/main/java/org/keycloak/models/jpa/ClientAdapter.java @@ -21,6 +21,7 @@ import org.keycloak.models.ClientModel; import org.keycloak.models.ClientScopeModel; import org.keycloak.models.KeycloakSession; import org.keycloak.models.ModelDuplicateException; +import org.keycloak.models.ModelException; import org.keycloak.models.ProtocolMapperModel; import org.keycloak.models.RealmModel; import org.keycloak.models.RoleModel; @@ -447,6 +448,9 @@ public class ClientAdapter implements ClientModel, JpaModel { @Override public void updateProtocolMapper(ProtocolMapperModel mapping) { ProtocolMapperEntity entity = getProtocolMapperEntity(mapping.getId()); + if (entity == null) { + throw new ModelException("mapping with id " + mapping.getId() + " does not exist"); + } entity.setProtocolMapper(mapping.getProtocolMapper()); if (entity.getConfig() == null) { entity.setConfig(mapping.getConfig()); diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/ClientScopeAdapter.java b/model/jpa/src/main/java/org/keycloak/models/jpa/ClientScopeAdapter.java index 8998f7d452e..59975d6ad00 100755 --- a/model/jpa/src/main/java/org/keycloak/models/jpa/ClientScopeAdapter.java +++ b/model/jpa/src/main/java/org/keycloak/models/jpa/ClientScopeAdapter.java @@ -20,6 +20,7 @@ package org.keycloak.models.jpa; import org.keycloak.models.ClientScopeModel; import org.keycloak.models.KeycloakSession; import org.keycloak.models.ModelDuplicateException; +import org.keycloak.models.ModelException; import org.keycloak.models.ProtocolMapperModel; import org.keycloak.models.RealmModel; import org.keycloak.models.RoleModel; @@ -54,6 +55,7 @@ public class ClientScopeAdapter implements ClientScopeModel, JpaModel query = em.createNamedQuery("authenticationFlowExecution", AuthenticationExecutionEntity.class) .setParameter("flowId", flowId); @@ -1637,6 +1640,9 @@ public class RealmAdapter implements StorageProviderRealmModel, JpaModel