mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Minor follow up on 32329: ALF-11734: Concurrency conditions not handled correctly for ACL persistence
- Pessimistically throw away the node cache entry referencing the ACL git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@32381 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1055,13 +1055,22 @@ public abstract class AbstractNodeDAOImpl implements NodeDAO, BatchingDAO
|
|||||||
Long childAclId = null;
|
Long childAclId = null;
|
||||||
if (parentAclId != null)
|
if (parentAclId != null)
|
||||||
{
|
{
|
||||||
AccessControlListProperties inheritedAcl = aclDAO.getAccessControlListProperties(
|
try
|
||||||
aclDAO.getInheritedAccessControlList(parentAclId));
|
{
|
||||||
|
Long inheritedACL = aclDAO.getInheritedAccessControlList(parentAclId);
|
||||||
|
AccessControlListProperties inheritedAcl = aclDAO.getAccessControlListProperties(inheritedACL);
|
||||||
if (inheritedAcl != null)
|
if (inheritedAcl != null)
|
||||||
{
|
{
|
||||||
childAclId = inheritedAcl.getId();
|
childAclId = inheritedAcl.getId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (Throwable e)
|
||||||
|
{
|
||||||
|
// The get* calls above actually do writes. So pessimistically get rid of the
|
||||||
|
// parent node from the cache in case it was wrong somehow.
|
||||||
|
invalidateNodeCaches(parentNodeId);
|
||||||
|
}
|
||||||
|
}
|
||||||
// Build the cm:auditable properties
|
// Build the cm:auditable properties
|
||||||
AuditablePropertiesEntity auditableProps = new AuditablePropertiesEntity();
|
AuditablePropertiesEntity auditableProps = new AuditablePropertiesEntity();
|
||||||
boolean setAuditProps = auditableProps.setAuditValues(null, null, auditableProperties);
|
boolean setAuditProps = auditableProps.setAuditValues(null, null, auditableProperties);
|
||||||
|
Reference in New Issue
Block a user