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

(cherry picked from commit 4e49223ae6f6900b98c5c3e9fe54fe479062639d)
This commit is contained in:
Ana Bozianu
2017-02-10 18:14:57 +02:00
parent 8a80b58593
commit c61e180dba

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;
@@ -355,7 +356,16 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
if (groupResult.getFirst() == null) if (groupResult.getFirst() == null)
{ {
group = createIPRGroup(groupPrefix, authorities, groupResult.getSecond()); try
{
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
{ {