diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-patch-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-patch-context.xml
index 22d5ef5a91..8880e7a61b 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-patch-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-patch-context.xml
@@ -66,6 +66,7 @@
+
aspectPair = qnameDAO.getQName(ASPECT_FILE_PLAN_COMPONENT);
- if (aspectPair != null)
+ retryingTransactionHelper.doInTransaction(new Work(), false, true);
+
+ if (logger.isDebugEnabled() == true)
{
- List filePlanComponents = patchDAO.getNodesByAspectQNameId(aspectPair.getFirst(), 0L, patchDAO.getMaxAdmNodeID());
+ logger.debug(" ... complete RM Module RMv2FilePlanNodeRef Patch");
+ }
+
+ }
- if (logger.isDebugEnabled() == true)
+ private class Work implements RetryingTransactionHelper.RetryingTransactionCallback
+ {
+ @Override
+ public Integer execute() throws Throwable
+ {
+ Pair aspectPair = qnameDAO.getQName(RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT);
+ if (aspectPair != null)
{
- logger.debug(" ... updating " + filePlanComponents.size() + " items" );
- }
-
- behaviourFilter.disableBehaviour();
- try
- {
- for (Long filePlanComponent : filePlanComponents)
+ List filePlanComponents = patchDAO.getNodesByAspectQNameId(aspectPair.getFirst(), 0L, patchDAO.getMaxAdmNodeID());
+
+ if (logger.isDebugEnabled() == true)
{
- Pair recordPair = nodeDAO.getNodePair(filePlanComponent);
- NodeRef filePlanComponentNodeRef = recordPair.getSecond();
-
- NodeRef filePlan = filePlanService.getFilePlan(filePlanComponentNodeRef);
-
- // set the file plan node reference
- if (nodeService.getProperty(filePlanComponentNodeRef, PROP_ROOT_NODEREF) == null)
+ logger.debug(" ... updating " + filePlanComponents.size() + " items" );
+ }
+
+ behaviourFilter.disableBehaviour();
+ try
+ {
+ for (Long filePlanComponent : filePlanComponents)
{
- nodeService.setProperty(filePlanComponentNodeRef, PROP_ROOT_NODEREF, filePlan);
- }
-
- // only set the rmadmin permissions on record categories, record folders and records
- FilePlanComponentKind kind = filePlanService.getFilePlanComponentKind(filePlanComponentNodeRef);
- if (FilePlanComponentKind.RECORD_CATEGORY.equals(kind) == true ||
- FilePlanComponentKind.RECORD_FOLDER.equals(kind) == true ||
- FilePlanComponentKind.RECORD.equals(kind) == true )
- {
- // ensure the that the records management role has read and file on the node
- Role adminRole = filePlanRoleService.getRole(filePlan, "Administrator");
- if (adminRole != null)
- {
- permissionService.setPermission(filePlanComponentNodeRef, adminRole.getRoleGroupName(), RMPermissionModel.FILING, true);
- }
+ Pair recordPair = nodeDAO.getNodePair(filePlanComponent);
+ NodeRef filePlanComponentNodeRef = recordPair.getSecond();
- // ensure that the default vital record default values have been set (RM-753)
- Serializable vitalRecordIndicator = nodeService.getProperty(filePlanComponentNodeRef, PROP_VITAL_RECORD_INDICATOR);
- if (vitalRecordIndicator == null)
+ NodeRef filePlan = filePlanService.getFilePlan(filePlanComponentNodeRef);
+
+ // set the file plan node reference
+ if (nodeService.getProperty(filePlanComponentNodeRef, PROP_ROOT_NODEREF) == null)
{
- nodeService.setProperty(filePlanComponentNodeRef, PROP_VITAL_RECORD_INDICATOR, false);
- }
- Serializable reviewPeriod = nodeService.getProperty(filePlanComponentNodeRef, PROP_REVIEW_PERIOD);
- if (reviewPeriod == null)
+ nodeService.setProperty(filePlanComponentNodeRef, PROP_ROOT_NODEREF, filePlan);
+ }
+
+ // only set the rmadmin permissions on record categories, record folders and records
+ FilePlanComponentKind kind = filePlanService.getFilePlanComponentKind(filePlanComponentNodeRef);
+ if (FilePlanComponentKind.RECORD_CATEGORY.equals(kind) == true ||
+ FilePlanComponentKind.RECORD_FOLDER.equals(kind) == true ||
+ FilePlanComponentKind.RECORD.equals(kind) == true )
{
- nodeService.setProperty(filePlanComponentNodeRef, PROP_REVIEW_PERIOD, new Period("none|0"));
+ // ensure the that the records management role has read and file on the node
+ Role adminRole = filePlanRoleService.getRole(filePlan, "Administrator");
+ if (adminRole != null)
+ {
+ permissionService.setPermission(filePlanComponentNodeRef, adminRole.getRoleGroupName(), RMPermissionModel.FILING, true);
+ }
+
+ // ensure that the default vital record default values have been set (RM-753)
+ Serializable vitalRecordIndicator = nodeService.getProperty(filePlanComponentNodeRef, PROP_VITAL_RECORD_INDICATOR);
+ if (vitalRecordIndicator == null)
+ {
+ nodeService.setProperty(filePlanComponentNodeRef, PROP_VITAL_RECORD_INDICATOR, false);
+ }
+ Serializable reviewPeriod = nodeService.getProperty(filePlanComponentNodeRef, PROP_REVIEW_PERIOD);
+ if (reviewPeriod == null)
+ {
+ nodeService.setProperty(filePlanComponentNodeRef, PROP_REVIEW_PERIOD, new Period("none|0"));
+ }
}
}
}
+ finally
+ {
+ behaviourFilter.enableBehaviour();
+ }
}
- finally
- {
- behaviourFilter.enableBehaviour();
- }
- }
- }
+
+ // nothing to do
+ return 0;
+ }
+ }
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2ModelPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2ModelPatch.java
index 7d8fa3549c..b1c9927677 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2ModelPatch.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2ModelPatch.java
@@ -51,6 +51,7 @@ public class RMv2ModelPatch extends ModulePatchComponent
private QNameDAO qnameDAO;
private RetryingTransactionHelper retryingTransactionHelper;
+
public void setPatchDAO(PatchDAO patchDAO)
{
this.patchDAO = patchDAO;
@@ -89,44 +90,22 @@ public class RMv2ModelPatch extends ModulePatchComponent
private void updateQName(QName qnameBefore, QName qnameAfter, String reindexClass)
{
- Long maxNodeId = patchDAO.getMaxAdmNodeID();
- Pair before = qnameDAO.getQName(qnameBefore);
+ Work work = new Work(qnameBefore, qnameAfter, reindexClass);
+ retryingTransactionHelper.doInTransaction(work, false, true);
- if (before != null)
- {
- for (Long i = 0L; i < maxNodeId; i+=BATCH_SIZE)
- {
- Work work = new Work(before.getFirst(), i, reindexClass);
- retryingTransactionHelper.doInTransaction(work, false, true);
- }
-
- qnameDAO.updateQName(qnameBefore, qnameAfter);
-
- if (logger.isDebugEnabled() == true)
- {
- logger.debug(" ... updated qname " + qnameBefore.toString());
- }
- }
- else
- {
- if (logger.isDebugEnabled() == true)
- {
- logger.debug(" ... no need to update qname " + qnameBefore.toString());
- }
- }
}
private class Work implements RetryingTransactionHelper.RetryingTransactionCallback
{
- private long qnameId;
- private long lower;
+ private QName qnameBefore;
+ private QName qnameAfter;
private String reindexClass;
- Work(long qnameId, long lower, String reindexClass)
+ Work(QName qnameBefore, QName qnameAfter, String reindexClass)
{
- this.qnameId = qnameId;
- this.lower = lower;
+ this.qnameBefore = qnameBefore;
+ this.qnameAfter = qnameAfter;
this.reindexClass = reindexClass;
}
@@ -137,24 +116,43 @@ public class RMv2ModelPatch extends ModulePatchComponent
@Override
public Integer execute() throws Throwable
{
- if ("TYPE".equals(reindexClass))
+ Long maxNodeId = patchDAO.getMaxAdmNodeID();
+
+ Pair before = qnameDAO.getQName(qnameBefore);
+
+ if (before != null)
{
- List nodeIds = patchDAO.getNodesByTypeQNameId(qnameId, lower, lower + BATCH_SIZE);
- nodeDAO.touchNodes(nodeDAO.getCurrentTransactionId(true), nodeIds);
- return nodeIds.size();
- }
- else if ("ASPECT".equals(reindexClass))
- {
- List nodeIds = patchDAO.getNodesByAspectQNameId(qnameId, lower, lower + BATCH_SIZE);
- nodeDAO.touchNodes(nodeDAO.getCurrentTransactionId(true), nodeIds);
- return nodeIds.size();
- }
+ for (Long i = 0L; i < maxNodeId; i+=BATCH_SIZE)
+ {
+ if ("TYPE".equals(reindexClass))
+ {
+ List nodeIds = patchDAO.getNodesByTypeQNameId(before.getFirst(), i, i + BATCH_SIZE);
+ nodeDAO.touchNodes(nodeDAO.getCurrentTransactionId(true), nodeIds);
+ }
+ else if ("ASPECT".equals(reindexClass))
+ {
+ List nodeIds = patchDAO.getNodesByAspectQNameId(before.getFirst(), i, i + BATCH_SIZE);
+ nodeDAO.touchNodes(nodeDAO.getCurrentTransactionId(true), nodeIds);
+ }
+ }
+
+ qnameDAO.updateQName(qnameBefore, qnameAfter);
+
+ if (logger.isDebugEnabled() == true)
+ {
+ logger.debug(" ... updated qname " + qnameBefore.toString());
+ }
+ }
else
{
- // nothing to do
- return 0;
+ if (logger.isDebugEnabled() == true)
+ {
+ logger.debug(" ... no need to update qname " + qnameBefore.toString());
+ }
}
-
- }
- }
+
+ //nothing to do
+ return 0;
+ }
+ }
}