diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java index 0476537018..9e34516cc3 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java @@ -362,7 +362,7 @@ public class RecordServiceImpl implements RecordService, policyComponent.bindClassBehaviour( NodeServicePolicies.OnRemoveAspectPolicy.QNAME, ContentModel.ASPECT_NO_CONTENT, - new JavaBehaviour(this, "onRemoveAspect", NotificationFrequency.EVERY_EVENT)); + new JavaBehaviour(this, "onRemoveAspect", NotificationFrequency.TRANSACTION_COMMIT)); } /** @@ -452,24 +452,32 @@ public class RecordServiceImpl implements RecordService, @Override public Void doWork() throws Exception { - NodeRef nodeRef = childAssocRef.getChildRef(); - if (nodeService.exists(nodeRef) == true && - nodeService.hasAspect(nodeRef, ContentModel.ASPECT_TEMPORARY) == false && - nodeService.getType(nodeRef).equals(TYPE_RECORD_FOLDER) == false && - nodeService.getType(nodeRef).equals(TYPE_RECORD_CATEGORY) == false) + onCreateChildAssociation.disable(); + try { - if (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_NO_CONTENT) == true) + NodeRef nodeRef = childAssocRef.getChildRef(); + if (nodeService.exists(nodeRef) == true && + nodeService.hasAspect(nodeRef, ContentModel.ASPECT_TEMPORARY) == false && + nodeService.getType(nodeRef).equals(TYPE_RECORD_FOLDER) == false && + nodeService.getType(nodeRef).equals(TYPE_RECORD_CATEGORY) == false) { - // we need to postpone filling until the NO_CONTENT aspect is removed - Set pendingFilling = TransactionalResourceHelper.getSet("pendingFilling"); - pendingFilling.add(nodeRef); - } - else - { - // create and file the content as a record - file(nodeRef); + if (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_NO_CONTENT) == true) + { + // we need to postpone filling until the NO_CONTENT aspect is removed + Set pendingFilling = TransactionalResourceHelper.getSet("pendingFilling"); + pendingFilling.add(nodeRef); + } + else + { + // create and file the content as a record + file(nodeRef); + } } } + finally + { + onCreateChildAssociation.enable(); + } return null; }