mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
ALF-9569: copiedFromAspect patch does not take documents with more than one working copy into account
- Added handling of detection of multiple check-outs of a node: - ALF-9029 RINF 49: Lucene Removal: CheckOutCheckInService API - ALF-9032: RINF 49: fixes to cm:workingcopy aspect git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@29236 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -363,6 +363,7 @@ public class CopiedFromAspectPatch extends AbstractPatch
|
|||||||
// Does the source exist?
|
// Does the source exist?
|
||||||
if (sourceNodeRef == null || !nodeService.exists(sourceNodeRef))
|
if (sourceNodeRef == null || !nodeService.exists(sourceNodeRef))
|
||||||
{
|
{
|
||||||
|
boolean isNewModel = true;
|
||||||
if (
|
if (
|
||||||
nodeService.hasAspect(nodeRef, ContentModel.ASPECT_COPIEDFROM) &&
|
nodeService.hasAspect(nodeRef, ContentModel.ASPECT_COPIEDFROM) &&
|
||||||
nodeService.getSourceAssocs(nodeRef, ContentModel.ASSOC_ORIGINAL).size() == 0)
|
nodeService.getSourceAssocs(nodeRef, ContentModel.ASSOC_ORIGINAL).size() == 0)
|
||||||
@@ -374,6 +375,7 @@ public class CopiedFromAspectPatch extends AbstractPatch
|
|||||||
}
|
}
|
||||||
writeLine(file, "Removing cm:copiedfrom from node: " + nodePair);
|
writeLine(file, "Removing cm:copiedfrom from node: " + nodePair);
|
||||||
nodeService.removeAspect(nodeRef, ContentModel.ASPECT_COPIEDFROM);
|
nodeService.removeAspect(nodeRef, ContentModel.ASPECT_COPIEDFROM);
|
||||||
|
isNewModel = false;
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
nodeService.hasAspect(nodeRef, ContentModel.ASPECT_WORKING_COPY) &&
|
nodeService.hasAspect(nodeRef, ContentModel.ASPECT_WORKING_COPY) &&
|
||||||
@@ -386,8 +388,17 @@ public class CopiedFromAspectPatch extends AbstractPatch
|
|||||||
}
|
}
|
||||||
writeLine(file, "Removing cm:workingcopy from node: " + nodePair);
|
writeLine(file, "Removing cm:workingcopy from node: " + nodePair);
|
||||||
nodeService.removeAspect(nodeRef, ContentModel.ASPECT_WORKING_COPY);
|
nodeService.removeAspect(nodeRef, ContentModel.ASPECT_WORKING_COPY);
|
||||||
|
isNewModel = false;
|
||||||
}
|
}
|
||||||
// If nothing was done, then it's a node with the new data model and we can leave it
|
// If nothing was done, then it's a node with the new data model and we can leave it
|
||||||
|
if (isNewModel)
|
||||||
|
{
|
||||||
|
if (logger.isDebugEnabled())
|
||||||
|
{
|
||||||
|
logger.debug("\tP: Ignoring data with new model: " + nodePair);
|
||||||
|
}
|
||||||
|
writeLine(file, "Ignoring data with new model: " + nodePair);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -416,6 +427,20 @@ public class CopiedFromAspectPatch extends AbstractPatch
|
|||||||
{
|
{
|
||||||
// The association is already present, so just remove the property (we'll do that later)
|
// The association is already present, so just remove the property (we'll do that later)
|
||||||
}
|
}
|
||||||
|
else if (nodeService.hasAspect(sourceNodeRef, ContentModel.ASPECT_CHECKED_OUT))
|
||||||
|
{
|
||||||
|
// ALF-9569: copiedFromAspect patch does not take documents with
|
||||||
|
// more than one working copy into account
|
||||||
|
// So there are multiple working copies
|
||||||
|
if (logger.isDebugEnabled())
|
||||||
|
{
|
||||||
|
logger.debug("\tP: Found node with multiple working copies: " + sourceNodeRef);
|
||||||
|
logger.debug("\tP: Removing cm:workingcopy: " + nodePair);
|
||||||
|
}
|
||||||
|
writeLine(file, "Found node with multiple working copies: " + nodePair);
|
||||||
|
writeLine(file, "Removing cm:workingcopy from node: " + nodePair);
|
||||||
|
nodeService.removeAspect(nodeRef, ContentModel.ASPECT_WORKING_COPY);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
|
Reference in New Issue
Block a user