diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditServiceImpl.java index 821c609f85..e238562ecf 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditServiceImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditServiceImpl.java @@ -1446,7 +1446,11 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean if (entry.getEvent().equals("Create Person") && entry.getNodeRef() != null) { NodeRef nodeRef = entry.getNodeRef(); - String userName = (String)nodeService.getProperty(nodeRef, ContentModel.PROP_USERNAME); + String userName = null; + if(nodeService.exists(nodeRef)) + { + userName = (String)nodeService.getProperty(nodeRef, ContentModel.PROP_USERNAME); + } json.put("nodeName", userName == null ? "": userName); json.put("createPerson", true); } diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/forms/RecordsManagementNodeFormFilter.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/forms/RecordsManagementNodeFormFilter.java index b30b306cf8..e7f18a5d4c 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/forms/RecordsManagementNodeFormFilter.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/forms/RecordsManagementNodeFormFilter.java @@ -269,7 +269,7 @@ public class RecordsManagementNodeFormFilter extends RecordsManagementFormFilter * @param form * @param nodeRef */ - protected void addTransientProperties(Form form, final NodeRef nodeRef) + protected void addTransientProperties(final Form form, final NodeRef nodeRef) { if (recordService.isRecord(nodeRef)) { @@ -277,33 +277,36 @@ public class RecordsManagementNodeFormFilter extends RecordsManagementFormFilter } // Need to get the disposition schedule as the system user. See RM-1727. - DispositionSchedule ds = runAsSystem(new RunAsWork() + //Need to run all block as the system user, needed for disposition instructions, recordCategory and categoryId. See RM-3077. + runAsSystem(new RunAsWork() { @Override - public DispositionSchedule doWork() + public Void doWork() throws Exception { - return getDispositionService().getDispositionSchedule(nodeRef); + DispositionSchedule ds = getDispositionService().getDispositionSchedule(nodeRef); + + if (ds != null) + { + String instructions = ds.getDispositionInstructions(); + if (instructions != null) + { + addTransientPropertyField(form, TRANSIENT_DISPOSITION_INSTRUCTIONS, DataTypeDefinition.TEXT, + instructions); + } + + NodeRef recordCategory = getDispositionService().getAssociatedRecordsManagementContainer(ds); + if (recordCategory != null) + { + String categoryId = (String) nodeService.getProperty(recordCategory, PROP_IDENTIFIER); + if (categoryId != null) + { + addTransientPropertyField(form, TRANSIENT_CATEGORY_ID, DataTypeDefinition.TEXT, categoryId); + } + } + } + return null; } }); - - if (ds != null) - { - String instructions = ds.getDispositionInstructions(); - if (instructions != null) - { - addTransientPropertyField(form, TRANSIENT_DISPOSITION_INSTRUCTIONS, DataTypeDefinition.TEXT, instructions); - } - - NodeRef recordCategory = getDispositionService().getAssociatedRecordsManagementContainer(ds); - if (recordCategory != null) - { - String categoryId = (String)nodeService.getProperty(recordCategory, PROP_IDENTIFIER); - if (categoryId != null) - { - addTransientPropertyField(form, TRANSIENT_CATEGORY_ID, DataTypeDefinition.TEXT, categoryId); - } - } - } } /** diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/script/AuditLogGet.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/script/AuditLogGet.java index 7333d692c9..aac1f0298a 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/script/AuditLogGet.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/script/AuditLogGet.java @@ -158,6 +158,10 @@ public class AuditLogGet extends BaseAuditRetrievalWebScript if( targetNode == null ) { targetNode = filePlanService.getFilePlanBySiteId(FilePlanService.DEFAULT_RM_SITE_ID); + if(targetNode == null) + { + throw new WebScriptException(Status.STATUS_NOT_FOUND, "The default RM site was not found"); + } } return AccessStatus.ALLOWED.equals( capabilityService.getCapabilityAccessState(targetNode, ACCESS_AUDIT_CAPABILITY));