From 2b3268d5a1ef1cd8c3aca062ba3a9027e9ea7e95 Mon Sep 17 00:00:00 2001
From: William Enright <william.enright@savoirfairelinux.com>
Date: Fri, 4 Sep 2020 11:37:52 -0400
Subject: [PATCH] Fixed null policy error when attempting to register device

Change-Id: Iabb5239e216afe7d48ccc758563acd6d8b96e4cc
---
 .../core/workflows/RegisterDeviceFlow.java    | 20 ++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java b/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java
index b1f4a5e2..b9e0e5ee 100644
--- a/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java
+++ b/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java
@@ -70,13 +70,19 @@ public class RegisterDeviceFlow {
             dataStore.getDeviceDao().storeObject(device);
             //Now we build this response out.
             DeviceRegistrationResponse response = new DeviceRegistrationResponse();
-            userProfile.getGroupMemberships().forEach(e -> {
-                StatementElement st = new StatementElement("name", "=", e, "");
-                StatementList statementList1 = new StatementList();
-                statementList1.addStatement(st);
-                Policy policy = dataStore.getPolicyDao().getObjects(statementList1).get(0);
-                response.setPolicyData(policy.getPolicyData());
-            });
+            if(userProfile.getGroupMemberships() != null) {
+                userProfile.getGroupMemberships().forEach(e -> {
+                    StatementElement st = new StatementElement("name", "=", e, "");
+                    StatementList statementList1 = new StatementList();
+                    statementList1.addStatement(st);
+                    try {
+                        Policy policy = dataStore.getPolicyDao().getObjects(statementList1).get(0);
+                        response.setPolicyData(policy.getPolicyData());
+                    } catch (Exception e1) {
+                        log.warn("No policy available for user - not adding a policy component to response");
+                    }
+                });
+            }
             //We need to set the device receipt....
             String[] devReceipt = DeviceReceiptGenerator.generateReceipt(user.getPrivateKey(), user.getCertificate().getPublicKey(),
                     device.getCertificate().getPublicKey(), user.getEthAddress());
-- 
GitLab