From e886317bf5d3601dd437bc68fe3651de9d24e400 Mon Sep 17 00:00:00 2001 From: Ana Bozianu Date: Wed, 31 May 2017 17:10:43 +0300 Subject: [PATCH] RM-5244 - added extra check for efficiency --- .../record/RecordServiceImpl.java | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java index 92b6e66744..85f3a01d5e 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java @@ -456,8 +456,7 @@ public class RecordServiceImpl extends BaseBehaviourBean if (nodeService.exists(nodeRef) && nodeService.hasAspect(nodeRef, ASPECT_RECORD)) { generateRecordIdentifier(nodeService, identifierService, nodeRef); - // RM-5244 - workaround to make sure the incomplete aspect is removed - incompleteNodeTagger.beforeCommit(false); + reevaluateIncompleteTag(nodeRef); } return null; } @@ -481,8 +480,7 @@ public class RecordServiceImpl extends BaseBehaviourBean if (ContentData.hasContent(contentData) && contentData.getSize() > 0) { appendIdentifierToName(nodeService, nodeRef); - // RM-5244 - workaround to make sure the incomplete aspect is removed - incompleteNodeTagger.beforeCommit(false); + reevaluateIncompleteTag(nodeRef); } } } @@ -1847,8 +1845,7 @@ public class RecordServiceImpl extends BaseBehaviourBean if (nodeService.exists(nodeRef) && !nodeService.hasAspect(nodeRef, ContentModel.ASPECT_HIDDEN) && !nodeService.hasAspect(nodeRef, ContentModel.ASPECT_LOCKABLE)) { generateRecordIdentifier(nodeService, identifierService, nodeRef); - // RM-5244 - workaround to make sure the incomplete aspect is removed - incompleteNodeTagger.beforeCommit(false); + reevaluateIncompleteTag(nodeRef); } } @@ -1907,4 +1904,22 @@ public class RecordServiceImpl extends BaseBehaviourBean OnRecordRejection policy = onRecordRejectionDelegate.get(qnames); policy.onRecordRejection(nodeRef); } + + /** + * RM-5244 - workaround to make sure the incomplete aspect is removed + * + * @param nodeRef the node to reevaluate for + */ + private void reevaluateIncompleteTag(NodeRef nodeRef) + { + /* + * Check if the node has the aspect because the reevaluation is expensive. + * If the node doesn't have the aspect it means IncompleteNodeTagger didn't load before TransactionBehaviourQueue + * and we don't need to reevaluate. + */ + if(nodeService.hasAspect(nodeRef, ContentModel.ASPECT_INCOMPLETE)) + { + incompleteNodeTagger.beforeCommit(false); + } + } }