diff --git a/rm-server/source/java/org/alfresco/repo/rule/ExtendedRuleServiceImpl.java b/rm-server/source/java/org/alfresco/repo/rule/ExtendedRuleServiceImpl.java index 7901081930..33624e4929 100644 --- a/rm-server/source/java/org/alfresco/repo/rule/ExtendedRuleServiceImpl.java +++ b/rm-server/source/java/org/alfresco/repo/rule/ExtendedRuleServiceImpl.java @@ -95,27 +95,25 @@ public class ExtendedRuleServiceImpl extends RuleServiceImpl // The dispositionSchedule node will not be executed by rules if (recordsManagementService.isFilePlanComponent(nodeRef) == true - && typeQName.equals(RecordsManagementModel.TYPE_DISPOSITION_SCHEDULE) == false) + && typeQName.equals(RecordsManagementModel.TYPE_DISPOSITION_SCHEDULE) == false + && isFilePlanComponentRule(rule) == true && runAsRmAdmin == true) { - if (isFilePlanComponentRule(rule) == true && runAsRmAdmin == true) + String user = AuthenticationUtil.getFullyAuthenticatedUser(); + try { - String user = AuthenticationUtil.getFullyAuthenticatedUser(); - try - { - AuthenticationUtil.setFullyAuthenticatedUser(filePlanAuthenticationService.getRmAdminUserName()); - ExtendedRuleServiceImpl.super.executeRule(rule, nodeRef, executedRules); - } - finally - { - AuthenticationUtil.setFullyAuthenticatedUser(user); - } + AuthenticationUtil.setFullyAuthenticatedUser(filePlanAuthenticationService.getRmAdminUserName()); + ExtendedRuleServiceImpl.super.executeRule(rule, nodeRef, executedRules); } - else + finally { - // just execute the rule as the current user - super.executeRule(rule, nodeRef, executedRules); + AuthenticationUtil.setFullyAuthenticatedUser(user); } } + else + { + // just execute the rule as the current user + super.executeRule(rule, nodeRef, executedRules); + } } private boolean isFilePlanComponentRule(Rule rule)