keycloak-memoizeit

Fixing testsuite for mongo

9/16/2014 3:02:30 PM

Details

diff --git a/model/sessions-mongo/src/main/java/org/keycloak/models/sessions/mongo/MongoUserSessionProvider.java b/model/sessions-mongo/src/main/java/org/keycloak/models/sessions/mongo/MongoUserSessionProvider.java
index e4e75c5..3fdfdba 100755
--- a/model/sessions-mongo/src/main/java/org/keycloak/models/sessions/mongo/MongoUserSessionProvider.java
+++ b/model/sessions-mongo/src/main/java/org/keycloak/models/sessions/mongo/MongoUserSessionProvider.java
@@ -70,6 +70,9 @@ public class MongoUserSessionProvider implements UserSessionProvider {
 
         MongoUserSessionEntity userSessionEntity = entities.get(0);
         List<MongoClientSessionEntity> sessions = userSessionEntity.getClientSessions();
+        if (sessions == null) {
+            return null;
+        }
         for (MongoClientSessionEntity s : sessions) {
             if (s.getId().equals(id)) {
                 return new ClientSessionAdapter(session, this, realm, s, userSessionEntity, invocationContext);
@@ -240,6 +243,10 @@ public class MongoUserSessionProvider implements UserSessionProvider {
                 .get();
         List<MongoUserSessionEntity> userSessionEntities = mongoStore.loadEntities(MongoUserSessionEntity.class, query, invocationContext);
         for (MongoUserSessionEntity e : userSessionEntities) {
+            if (e.getClientSessions() == null) {
+                continue;
+            }
+
             List<MongoClientSessionEntity> remove = new LinkedList<MongoClientSessionEntity>();
             for (MongoClientSessionEntity c : e.getClientSessions()) {
                 if (c.getClientId().equals(client.getId())) {
diff --git a/model/sessions-mongo/src/main/java/org/keycloak/models/sessions/mongo/UserSessionAdapter.java b/model/sessions-mongo/src/main/java/org/keycloak/models/sessions/mongo/UserSessionAdapter.java
index 633e1e6..6a66585 100755
--- a/model/sessions-mongo/src/main/java/org/keycloak/models/sessions/mongo/UserSessionAdapter.java
+++ b/model/sessions-mongo/src/main/java/org/keycloak/models/sessions/mongo/UserSessionAdapter.java
@@ -131,6 +131,10 @@ public class UserSessionAdapter extends AbstractMongoAdapter<MongoUserSessionEnt
     @Override
     public List<ClientSessionModel> getClientSessions() {
         List<ClientSessionModel> sessions = new LinkedList<ClientSessionModel>();
+        if (entity.getClientSessions() == null) {
+            return sessions;
+        }
+
         for (MongoClientSessionEntity e : entity.getClientSessions()) {
             sessions.add(new ClientSessionAdapter(keycloakSession, provider, realm, e, entity, invocationContext));
         }