RM-4673 - added try catch to handle concurrent attempt to create group

(cherry picked from commit cb08f0e597e01a17ebab6191f9900e01187e7260)
This commit is contained in:
Ana Bozianu
2017-02-10 18:14:57 +02:00
parent 1ab0cfdbf2
commit 43ce56b3b3

View File

@@ -44,6 +44,7 @@ import org.alfresco.query.PagingRequest;
import org.alfresco.query.PagingResults; import org.alfresco.query.PagingResults;
import org.alfresco.repo.security.authority.RMAuthority; import org.alfresco.repo.security.authority.RMAuthority;
import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.DuplicateChildNodeNameException;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.AccessPermission; import org.alfresco.service.cmr.security.AccessPermission;
import org.alfresco.service.cmr.security.AuthorityService; import org.alfresco.service.cmr.security.AuthorityService;
@@ -354,9 +355,18 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
Pair<String, Integer> groupResult = findIPRGroup(groupPrefix, authorities); Pair<String, Integer> groupResult = findIPRGroup(groupPrefix, authorities);
if (groupResult.getFirst() == null) if (groupResult.getFirst() == null)
{
try
{ {
group = createIPRGroup(groupPrefix, authorities, groupResult.getSecond()); group = createIPRGroup(groupPrefix, authorities, groupResult.getSecond());
} }
catch(DuplicateChildNodeNameException ex)
{
// the group was concurrently created, try to get it again
groupResult = findIPRGroup(groupPrefix, authorities);
group = groupResult.getFirst();
}
}
else else
{ {
group = groupResult.getFirst(); group = groupResult.getFirst();