From d6d2f309495ef00e346c82d5dbbce544765585ec Mon Sep 17 00:00:00 2001 From: Dave Ward Date: Sat, 10 Dec 2011 11:11:08 +0000 Subject: [PATCH] ALF-1793: Possible build fix. Run as System in new VersionableAspect.beforeAddAspect() method. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@32692 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/version/VersionableAspect.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/source/java/org/alfresco/repo/version/VersionableAspect.java b/source/java/org/alfresco/repo/version/VersionableAspect.java index 3de5a9cc19..a1fe28d134 100644 --- a/source/java/org/alfresco/repo/version/VersionableAspect.java +++ b/source/java/org/alfresco/repo/version/VersionableAspect.java @@ -39,6 +39,8 @@ import org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy; import org.alfresco.repo.policy.Behaviour; import org.alfresco.repo.policy.JavaBehaviour; import org.alfresco.repo.policy.PolicyComponent; +import org.alfresco.repo.security.authentication.AuthenticationUtil; +import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.repo.transaction.AlfrescoTransactionSupport; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; @@ -314,14 +316,23 @@ public class VersionableAspect implements ContentServicePolicies.OnContentUpdate * @param nodeRef * @param aspectTypeQName */ - public void beforeAddAspect(NodeRef nodeRef, QName aspectTypeQName) + public void beforeAddAspect(final NodeRef nodeRef, QName aspectTypeQName) { - if(this.nodeService.hasAspect(nodeRef, ContentModel.ASPECT_VERSIONABLE) == false && - this.versionService.getVersionHistory(nodeRef) != null) + AuthenticationUtil.runAsSystem(new RunAsWork() { - this.versionService.deleteVersionHistory(nodeRef); - logger.warn("The version history of node " + nodeRef + " that doesn't have versionable aspect was deleted"); - } + @Override + public Void doWork() throws Exception + { + if (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_VERSIONABLE) == false + && versionService.getVersionHistory(nodeRef) != null) + { + versionService.deleteVersionHistory(nodeRef); + logger.warn("The version history of node " + nodeRef + + " that doesn't have versionable aspect was deleted"); + } + return null; + } + }); } /**