diff --git a/id-repository/id-repository-identity-service/src/main/java/io/mosip/idrepository/identity/service/impl/IdRepoServiceImpl.java b/id-repository/id-repository-identity-service/src/main/java/io/mosip/idrepository/identity/service/impl/IdRepoServiceImpl.java index 7fad11ce6..dfd66747e 100644 --- a/id-repository/id-repository-identity-service/src/main/java/io/mosip/idrepository/identity/service/impl/IdRepoServiceImpl.java +++ b/id-repository/id-repository-identity-service/src/main/java/io/mosip/idrepository/identity/service/impl/IdRepoServiceImpl.java @@ -1031,12 +1031,14 @@ private Map> checkAndGetHandles(IdRequestDTO request, St if (handles != null && !handles.isEmpty()) { List duplicateHandleFieldIds = handles.keySet().stream().filter(handleName -> { List hashes = handles.get(handleName).stream().map(HandleDto::getHandleHash).collect(Collectors.toList()); - List uinHashFromDB = handleRepo.findUinHashByHandleHashes(hashes); - if (!uinHashFromDB.isEmpty()) { - if (method.equals(UPDATE) && uinHashFromDB.contains(uinHash)) { - return false; + if(!hashes.isEmpty()){ + List uinHashFromDB = handleRepo.findUinHashByHandleHashes(hashes); + if (!uinHashFromDB.isEmpty()) { + if (method.equals(UPDATE) && uinHashFromDB.contains(uinHash)) { + return false; + } + return true; } - return true; } return false; }).collect(Collectors.toList()); @@ -1098,7 +1100,8 @@ private Map> getNewAndDeleteExistingHandles(IdRequestDTO for(HandleDto existingHandleDto : existingEntry.getValue()) { //if same handle hash present in "inputSelectedHandlesMap" then //remove from "inputSelectedHandlesMap" otherwise update handle status as 'DELETE'. - if (inputSelectedHandlesMap != null && inputSelectedHandlesMap.containsKey(existingEntry.getKey())) { + if (inputSelectedHandlesMap != null && inputSelectedHandlesMap.containsKey(existingEntry.getKey()) && + !inputSelectedHandlesMap.get(existingEntry.getKey()).isEmpty()) { Optional result = inputSelectedHandlesMap.get(existingEntry.getKey()) .stream() .filter( newDto -> newDto.getHandleHash().equals(existingHandleDto.getHandleHash()) ) @@ -1111,9 +1114,9 @@ private Map> getNewAndDeleteExistingHandles(IdRequestDTO inputSelectedHandlesMap.get(existingEntry.getKey()).remove(result.get()); } - } else { + } /*else { handleHashesToBeDeleted.add(existingHandleDto.getHandleHash()); - } + }*/ } }