From 1d921ab15a65232c73017c8e8ea30e6107a65a99 Mon Sep 17 00:00:00 2001
From: Hari-stackroute <40484996+Hari-stackroute@users.noreply.github.com>
Date: Mon, 19 Jul 2021 18:36:33 +0530
Subject: [PATCH] Assign v1 failing to add existing role when sent for update
 (#887)

---
 .../org/sunbird/user/service/impl/UserRoleServiceImpl.java   | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/actors/sunbird-lms-mw/actors/user/src/main/java/org/sunbird/user/service/impl/UserRoleServiceImpl.java b/actors/sunbird-lms-mw/actors/user/src/main/java/org/sunbird/user/service/impl/UserRoleServiceImpl.java
index 8993806f9..5e5f70ce2 100644
--- a/actors/sunbird-lms-mw/actors/user/src/main/java/org/sunbird/user/service/impl/UserRoleServiceImpl.java
+++ b/actors/sunbird-lms-mw/actors/user/src/main/java/org/sunbird/user/service/impl/UserRoleServiceImpl.java
@@ -10,6 +10,7 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Collectors;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.SerializationUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.sunbird.exception.ProjectCommonException;
 import org.sunbird.exception.ResponseCode;
@@ -47,8 +48,10 @@ public class UserRoleServiceImpl implements UserRoleService {
               userRequest, dbUserRoleListToUpdate, dbUserRoleListToDelete, context);
       // Update existing role scope, if same role is in request
       if (CollectionUtils.isNotEmpty(dbUserRoleListToUpdate)) {
+        List<Map<String, Object>> newUserReqMap =
+            SerializationUtils.clone(new ArrayList<>(dbUserRoleListToUpdate));
+        userRoleListResponse.addAll(newUserReqMap);
         userRoleDao.updateRoleScope(dbUserRoleListToUpdate, context);
-        userRoleListResponse.addAll(dbUserRoleListToUpdate);
       }
       // Delete existing roles of user, if the same is not in request
       if (CollectionUtils.isNotEmpty(dbUserRoleListToDelete)) {
-- 
GitLab