[Upgrade] Search Result points to incorrect link to Folder on Hold
This commit is contained in:
estan
2021-02-28 10:48:20 +02:00
parent ae3e843cb9
commit a27e2aaa9e

View File

@@ -26,6 +26,11 @@
*/ */
package org.alfresco.module.org_alfresco_module_rm.patch.v35; package org.alfresco.module.org_alfresco_module_rm.patch.v35;
import static org.alfresco.model.ContentModel.ASSOC_CONTAINS;
import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.ASSOC_FROZEN_CONTENT;
import java.util.List;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService; import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
import org.alfresco.module.org_alfresco_module_rm.hold.HoldService; import org.alfresco.module.org_alfresco_module_rm.hold.HoldService;
@@ -34,13 +39,13 @@ import org.alfresco.repo.policy.BehaviourFilter;
import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.RegexQNamePattern;
/** /**
* Patch to create new hold child association to link the record to the hold * Patch to create new hold child association to link the record to the hold
* * <p>
* See: https://alfresco.atlassian.net/browse/APPS-659 * See: https://alfresco.atlassian.net/browse/APPS-659
* *
*
* @since 3.5 * @since 3.5
*/ */
public class RMv35HoldNewChildAssocPatch extends AbstractModulePatch public class RMv35HoldNewChildAssocPatch extends AbstractModulePatch
@@ -64,6 +69,7 @@ public class RMv35HoldNewChildAssocPatch extends AbstractModulePatch
/** /**
* Setter for fileplanservice * Setter for fileplanservice
*
* @param filePlanService File plan service interface * @param filePlanService File plan service interface
*/ */
public void setFilePlanService(FilePlanService filePlanService) public void setFilePlanService(FilePlanService filePlanService)
@@ -73,6 +79,7 @@ public class RMv35HoldNewChildAssocPatch extends AbstractModulePatch
/** /**
* Setter for hold service * Setter for hold service
*
* @param holdService Hold service interface. * @param holdService Hold service interface.
*/ */
public void setHoldService(HoldService holdService) public void setHoldService(HoldService holdService)
@@ -82,6 +89,7 @@ public class RMv35HoldNewChildAssocPatch extends AbstractModulePatch
/** /**
* Setter for node service * Setter for node service
*
* @param nodeService Interface for public and internal node and store operations. * @param nodeService Interface for public and internal node and store operations.
*/ */
public void setNodeService(NodeService nodeService) public void setNodeService(NodeService nodeService)
@@ -110,15 +118,21 @@ public class RMv35HoldNewChildAssocPatch extends AbstractModulePatch
{ {
for (NodeRef hold : holdService.getHolds(filePlan)) for (NodeRef hold : holdService.getHolds(filePlan))
{ {
for (ChildAssociationRef ref : nodeService.getChildAssocs(hold)) List<ChildAssociationRef> frozenAssoc = nodeService.getChildAssocs(hold,
ASSOC_FROZEN_CONTENT, RegexQNamePattern.MATCH_ALL);
for (ChildAssociationRef ref : frozenAssoc)
{ {
holdService.removeFromHold(hold, ref.getChildRef()); //search the second parent
holdService.addToHold(hold, ref.getChildRef()); List<ChildAssociationRef> parentAssoc = nodeService.getParentAssocs(ref.getChildRef(), ASSOC_CONTAINS, RegexQNamePattern.MATCH_ALL);
if (parentAssoc.isEmpty())
{
ChildAssociationRef primaryParentAssoc = nodeService.getPrimaryParent(hold);
nodeService.addChild(hold, hold, ASSOC_CONTAINS, primaryParentAssoc.getQName());
}
} }
} }
} }
} } finally
finally
{ {
behaviourFilter.enableBehaviour(ContentModel.ASPECT_AUDITABLE); behaviourFilter.enableBehaviour(ContentModel.ASPECT_AUDITABLE);
behaviourFilter.enableBehaviour(ContentModel.ASPECT_VERSIONABLE); behaviourFilter.enableBehaviour(ContentModel.ASPECT_VERSIONABLE);