diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/patch/rm-patch-v24-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/patch/rm-patch-v24-context.xml
index 682a3a0331..475f1d3b39 100644
--- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/patch/rm-patch-v24-context.xml
+++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/patch/rm-patch-v24-context.xml
@@ -25,6 +25,7 @@
+
\ No newline at end of file
diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v24/RMv24DispositionInheritancePatch.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v24/RMv24DispositionInheritancePatch.java
index b1fe090b1b..029e4c48fe 100644
--- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v24/RMv24DispositionInheritancePatch.java
+++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v24/RMv24DispositionInheritancePatch.java
@@ -28,15 +28,19 @@
package org.alfresco.module.org_alfresco_module_rm.patch.v24;
import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.ASPECT_DISPOSITION_LIFECYCLE;
+import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.ASPECT_FROZEN;
+import java.util.ArrayList;
import java.util.List;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionActionDefinition;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedule;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;
+import org.alfresco.module.org_alfresco_module_rm.hold.HoldService;
import org.alfresco.module.org_alfresco_module_rm.patch.AbstractModulePatch;
import org.alfresco.module.org_alfresco_module_rm.query.RecordsManagementQueryDAO;
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
+import org.alfresco.repo.policy.BehaviourFilter;
import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
@@ -66,6 +70,8 @@ public class RMv24DispositionInheritancePatch extends AbstractModulePatch
private RecordsManagementQueryDAO recordsManagementQueryDAO;
+ private BehaviourFilter behaviourFilter;
+
public void setDispositionService(DispositionService dispositionService)
{
this.dispositionService = dispositionService;
@@ -86,6 +92,11 @@ public class RMv24DispositionInheritancePatch extends AbstractModulePatch
this.recordsManagementQueryDAO = recordsManagementQueryDAO;
}
+ public void setBehaviourFilter(BehaviourFilter behaviourFilter)
+ {
+ this.behaviourFilter = behaviourFilter;
+ }
+
/**
* @see AbstractModulePatch#applyInternal()
*
@@ -94,11 +105,10 @@ public class RMv24DispositionInheritancePatch extends AbstractModulePatch
@Override
public void applyInternal()
{
- logger.info("********************Patch start********************");
- int maxNode = recordsManagementQueryDAO.getRecordFoldersWithSchedulesCount();
- logger.info("nodes to update: "+ maxNode);
+ int totalFolders = recordsManagementQueryDAO.getRecordFoldersWithSchedulesCount();
+ logger.info("Folders to update: "+ totalFolders);
- for (Long i = 0L; i < maxNode; i += BATCH_SIZE)
+ for (Long i = 0L; i < totalFolders; i += BATCH_SIZE)
{
final Long finali = i;
int updatedRecords = transactionService.getRetryingTransactionHelper()
@@ -107,17 +117,14 @@ public class RMv24DispositionInheritancePatch extends AbstractModulePatch
public Integer execute() throws Throwable
{
int recordCount = 0;
- logger.info("********************Patch start********************");
- logger.info("********************Query start********************");
- logger.info(finali);
- logger.info(finali + BATCH_SIZE);
- logger.info(recordsManagementQueryDAO.getRecordFoldersWithSchedules(finali, finali + BATCH_SIZE));
List folders = recordsManagementQueryDAO.getRecordFoldersWithSchedules(finali, finali + BATCH_SIZE);
- logger.info("********************Query end********************");
for (NodeRef folder : folders)
-
{
-
+ if (LOGGER.isDebugEnabled())
+ {
+ logger.info("Checking folder: " + folder);
+ }
+ behaviourFilter.disableBehaviour(folder);
DispositionSchedule schedule = dispositionService.getDispositionSchedule(folder);
if (schedule.isRecordLevelDisposition())
{
@@ -126,19 +133,25 @@ public class RMv24DispositionInheritancePatch extends AbstractModulePatch
{
if (!nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE))
{
- logger.info("updating record: " + record);
+ if (LOGGER.isDebugEnabled())
+ {
+ logger.info("updating record: " + record);
+ }
+ behaviourFilter.disableBehaviour(record);
dispositionService.updateNextDispositionAction(record, schedule);
recordCount ++;
+ behaviourFilter.enableBehaviour(record);
}
}
}
+ behaviourFilter.enableBehaviour(folder);
}
- logger.info("********************Patch end********************");
return recordCount;
}
}, false, true);
- logger.info("....completed: "+ updatedRecords);
+ logger.info("Records updated: "+ updatedRecords);
+ logger.info("Updating folders: "+ finali + " to: " +(finali + BATCH_SIZE) + " of "+totalFolders);
}
}
}