keycloak-memoizeit

preRemove

7/22/2016 3:24:37 PM

Details

diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/JpaRealmProvider.java b/model/jpa/src/main/java/org/keycloak/models/jpa/JpaRealmProvider.java
index 5ceab0b..2cf74ad 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/JpaRealmProvider.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/JpaRealmProvider.java
@@ -34,6 +34,7 @@ import org.keycloak.models.jpa.entities.GroupEntity;
 import org.keycloak.models.jpa.entities.RealmEntity;
 import org.keycloak.models.jpa.entities.RoleEntity;
 import org.keycloak.models.utils.KeycloakModelUtils;
+import org.keycloak.storage.StorageProviderModel;
 
 import javax.persistence.EntityManager;
 import javax.persistence.TypedQuery;
@@ -127,6 +128,9 @@ public class JpaRealmProvider implements RealmProvider {
         em.refresh(realm);
         final RealmAdapter adapter = new RealmAdapter(session, em, realm);
         session.users().preRemove(adapter);
+        for (StorageProviderModel provider : adapter.getStorageProviders()) {
+            adapter.removeStorageProvider(provider);
+        }
 
         realm.getDefaultGroups().clear();
         em.flush();
@@ -153,6 +157,7 @@ public class JpaRealmProvider implements RealmProvider {
             session.realms().removeRole(adapter, role);
         }
 
+
         em.remove(realm);
 
         em.flush();