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 5da9b4e..3172665 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
@@ -127,6 +127,10 @@ public class JpaRealmProvider implements RealmProvider {
em.refresh(realm);
RealmAdapter adapter = new RealmAdapter(session, em, realm);
session.users().preRemove(adapter);
+
+ realm.getDefaultGroups().clear();
+ em.flush();
+
int num = em.createNamedQuery("deleteGroupRoleMappingsByRealm")
.setParameter("realm", realm).executeUpdate();
num = em.createNamedQuery("deleteGroupAttributesByRealm")
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/RealmTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/RealmTest.java
index 6b842b0..40ed6ee 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/RealmTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/RealmTest.java
@@ -27,6 +27,7 @@ import org.keycloak.models.KeycloakSession;
import org.keycloak.models.RealmModel;
import org.keycloak.models.utils.KeycloakModelUtils;
import org.keycloak.representations.idm.ClientRepresentation;
+import org.keycloak.representations.idm.GroupRepresentation;
import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.representations.idm.RoleRepresentation;
import org.keycloak.services.managers.RealmManager;
@@ -35,6 +36,7 @@ import org.keycloak.util.JsonSerialization;
import javax.ws.rs.BadRequestException;
import javax.ws.rs.NotFoundException;
+import javax.ws.rs.core.Response;
import java.io.IOException;
import java.util.Collections;
import java.util.LinkedList;
@@ -441,4 +443,22 @@ public class RealmTest extends AbstractClientTest {
assertEquals(certificate, rep.getCertificate());
}
+ @Test
+ // KEYCLOAK-2700
+ public void deleteRealmWithDefaultGroups() throws IOException {
+ RealmRepresentation rep = new RealmRepresentation();
+ rep.setRealm("foo");
+
+ GroupRepresentation group = new GroupRepresentation();
+ group.setName("default1");
+ group.setPath("/default1");
+
+ rep.setGroups(Collections.singletonList(group));
+ rep.setDefaultGroups(Collections.singletonList("/default1"));
+
+ keycloak.realms().create(rep);
+
+ keycloak.realm(rep.getRealm()).remove();
+ }
+
}