From 6971d06fc0e668fba6a466db20cce937868970a0 Mon Sep 17 00:00:00 2001 From: Tuna Aksoy Date: Tue, 16 May 2017 09:59:43 +0100 Subject: [PATCH 1/2] RM-4528 (Electronic record using file upload creation in invalid parent container returns HTTP 500) --- .../fileplans/FilePlanChildrenRelation.java | 20 ++++++++++++++++--- .../api/fileplans/FilePlanEntityResource.java | 11 ---------- .../RecordCategoryChildrenRelation.java | 3 +-- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/fileplans/FilePlanChildrenRelation.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/fileplans/FilePlanChildrenRelation.java index 923b70c636..f89c5bf6f1 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/fileplans/FilePlanChildrenRelation.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/fileplans/FilePlanChildrenRelation.java @@ -39,23 +39,25 @@ import java.util.Map; import java.util.Set; import org.alfresco.query.PagingResults; -import org.alfresco.repo.activities.ActivityType; import org.alfresco.repo.node.getchildren.FilterProp; +import org.alfresco.repo.node.integrity.IntegrityException; import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; import org.alfresco.rest.api.impl.Util; import org.alfresco.rest.api.model.UserInfo; import org.alfresco.rest.framework.WebApiDescription; import org.alfresco.rest.framework.core.exceptions.EntityNotFoundException; import org.alfresco.rest.framework.resource.RelationshipResource; +import org.alfresco.rest.framework.resource.actions.interfaces.MultiPartRelationshipResourceAction; import org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceAction; import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo; import org.alfresco.rest.framework.resource.parameters.Parameters; +import org.alfresco.rest.framework.webscripts.WithResponse; import org.alfresco.rm.rest.api.impl.ApiNodesModelFactory; import org.alfresco.rm.rest.api.impl.FilePlanComponentsApiUtils; import org.alfresco.rm.rest.api.impl.SearchTypesFactory; import org.alfresco.rm.rest.api.model.FilePlan; -import org.alfresco.rm.rest.api.model.Record; import org.alfresco.rm.rest.api.model.RecordCategory; +import org.alfresco.rm.rest.api.model.RecordCategoryChild; import org.alfresco.service.cmr.model.FileFolderService; import org.alfresco.service.cmr.model.FileInfo; import org.alfresco.service.cmr.repository.NodeRef; @@ -63,6 +65,7 @@ import org.alfresco.service.namespace.QName; import org.alfresco.service.transaction.TransactionService; import org.alfresco.util.ParameterCheck; import org.springframework.beans.factory.InitializingBean; +import org.springframework.extensions.webscripts.servlet.FormData; /** * File plan children relation @@ -72,7 +75,9 @@ import org.springframework.beans.factory.InitializingBean; */ @RelationshipResource(name="categories", entityResource = FilePlanEntityResource.class, title = "Category children of file plan") public class FilePlanChildrenRelation implements RelationshipResourceAction.Read, - RelationshipResourceAction.Create, InitializingBean + RelationshipResourceAction.Create, + MultiPartRelationshipResourceAction.Create, + InitializingBean { /** Record category type */ public static final String RECORD_CATEGORY_TYPE = "rma:recordCategory"; @@ -218,4 +223,13 @@ public class FilePlanChildrenRelation implements RelationshipResourceAction.Read return result; } + + /** + * @see org.alfresco.rest.framework.resource.actions.interfaces.MultiPartRelationshipResourceAction.Create#create(java.lang.String, org.springframework.extensions.webscripts.servlet.FormData, org.alfresco.rest.framework.resource.parameters.Parameters, org.alfresco.rest.framework.webscripts.WithResponse) + */ + @Override + public RecordCategoryChild create(String entityResourceId, FormData formData, Parameters parameters, WithResponse withResponse) + { + throw new IntegrityException("Uploading records into file plan root is not allowed.", null); + } } diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/fileplans/FilePlanEntityResource.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/fileplans/FilePlanEntityResource.java index dbba7749bf..76df9f5308 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/fileplans/FilePlanEntityResource.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/fileplans/FilePlanEntityResource.java @@ -30,16 +30,13 @@ package org.alfresco.rm.rest.api.fileplans; import static org.alfresco.module.org_alfresco_module_rm.util.RMParameterCheck.checkNotBlank; import static org.alfresco.util.ParameterCheck.mandatory; -import org.alfresco.repo.node.integrity.IntegrityException; import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; import org.alfresco.rest.framework.WebApiDescription; import org.alfresco.rest.framework.WebApiParam; import org.alfresco.rest.framework.core.exceptions.EntityNotFoundException; import org.alfresco.rest.framework.resource.EntityResource; import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAction; -import org.alfresco.rest.framework.resource.actions.interfaces.MultiPartRelationshipResourceAction; import org.alfresco.rest.framework.resource.parameters.Parameters; -import org.alfresco.rest.framework.webscripts.WithResponse; import org.alfresco.rm.rest.api.impl.ApiNodesModelFactory; import org.alfresco.rm.rest.api.impl.FilePlanComponentsApiUtils; import org.alfresco.rm.rest.api.model.FilePlan; @@ -50,7 +47,6 @@ import org.alfresco.service.namespace.QName; import org.alfresco.service.transaction.TransactionService; import org.alfresco.util.ParameterCheck; import org.springframework.beans.factory.InitializingBean; -import org.springframework.extensions.webscripts.servlet.FormData; /** * File plan entity resource @@ -61,7 +57,6 @@ import org.springframework.extensions.webscripts.servlet.FormData; @EntityResource(name = "file-plans", title = "File plans") public class FilePlanEntityResource implements EntityResourceAction.ReadById, EntityResourceAction.Update, - MultiPartRelationshipResourceAction.Create, InitializingBean { @@ -153,10 +148,4 @@ public class FilePlanEntityResource implements EntityResourceAction.ReadById Date: Tue, 16 May 2017 12:54:14 +0100 Subject: [PATCH 2/2] RM-4528 (Electronic record using file upload creation in invalid parent container returns HTTP 500) --- .../rm/rest/api/fileplans/FilePlanChildrenRelation.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/fileplans/FilePlanChildrenRelation.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/fileplans/FilePlanChildrenRelation.java index f89c5bf6f1..d8c3e20dab 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/fileplans/FilePlanChildrenRelation.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/fileplans/FilePlanChildrenRelation.java @@ -57,7 +57,6 @@ import org.alfresco.rm.rest.api.impl.FilePlanComponentsApiUtils; import org.alfresco.rm.rest.api.impl.SearchTypesFactory; import org.alfresco.rm.rest.api.model.FilePlan; import org.alfresco.rm.rest.api.model.RecordCategory; -import org.alfresco.rm.rest.api.model.RecordCategoryChild; import org.alfresco.service.cmr.model.FileFolderService; import org.alfresco.service.cmr.model.FileInfo; import org.alfresco.service.cmr.repository.NodeRef; @@ -76,7 +75,7 @@ import org.springframework.extensions.webscripts.servlet.FormData; @RelationshipResource(name="categories", entityResource = FilePlanEntityResource.class, title = "Category children of file plan") public class FilePlanChildrenRelation implements RelationshipResourceAction.Read, RelationshipResourceAction.Create, - MultiPartRelationshipResourceAction.Create, + MultiPartRelationshipResourceAction.Create, InitializingBean { /** Record category type */ @@ -228,7 +227,7 @@ public class FilePlanChildrenRelation implements RelationshipResourceAction.Read * @see org.alfresco.rest.framework.resource.actions.interfaces.MultiPartRelationshipResourceAction.Create#create(java.lang.String, org.springframework.extensions.webscripts.servlet.FormData, org.alfresco.rest.framework.resource.parameters.Parameters, org.alfresco.rest.framework.webscripts.WithResponse) */ @Override - public RecordCategoryChild create(String entityResourceId, FormData formData, Parameters parameters, WithResponse withResponse) + public RecordCategory create(String entityResourceId, FormData formData, Parameters parameters, WithResponse withResponse) { throw new IntegrityException("Uploading records into file plan root is not allowed.", null); }