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 e4e75c5c73..3fdfdba3fc 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 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 userSessionEntities = mongoStore.loadEntities(MongoUserSessionEntity.class, query, invocationContext); for (MongoUserSessionEntity e : userSessionEntities) { + if (e.getClientSessions() == null) { + continue; + } + List remove = new LinkedList(); 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 633e1e65e1..6a6658550d 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 getClientSessions() { List sessions = new LinkedList(); + if (entity.getClientSessions() == null) { + return sessions; + } + for (MongoClientSessionEntity e : entity.getClientSessions()) { sessions.add(new ClientSessionAdapter(keycloakSession, provider, realm, e, entity, invocationContext)); }