From 3881d6e8d71eda6a72191ccd2c8e84c798780e6e Mon Sep 17 00:00:00 2001 From: Martin Muller Date: Fri, 5 Aug 2016 13:46:55 +0000 Subject: [PATCH] Merged RETURN-OF-THE-API (5.2.0) to 5.2.N (5.2.1) 128525 jvonka: REPO-874: Improve REST fwk: improve error message if a POST operation is attempted with multiple items - follow-on to fix fallout git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@129169 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../webscripts/ResourceWebScriptPost.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptPost.java b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptPost.java index 11025f5b36..792c9fbf0d 100644 --- a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptPost.java +++ b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptPost.java @@ -148,8 +148,9 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements { return null; } - + Class objType = resourceMeta.getObjectType(operation); + boolean isTypeOperation = resourceMeta.getType().equals(ResourceMetadata.RESOURCE_TYPE.OPERATION); List params = operation.getParameters(); if (!params.isEmpty()) @@ -157,7 +158,6 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements for (ResourceParameter resourceParameter : params) { // POST to collection may or may not support List as json body, Operations don't support a List as json body - boolean isTypeOperation = resourceMeta.getType().equals(ResourceMetadata.RESOURCE_TYPE.OPERATION); boolean notMultiple = ((! resourceParameter.isAllowMultiple()) || isTypeOperation); if (ResourceParameter.KIND.HTTP_BODY_OBJECT.equals(resourceParameter.getParamType()) && notMultiple) @@ -168,7 +168,7 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements Object jsonContent = null; if (objType != null) { - jsonContent = ResourceWebScriptHelper.extractJsonContent(req,assistant.getJsonHelper(), objType); + jsonContent = ResourceWebScriptHelper.extractJsonContent(req, assistant.getJsonHelper(), objType); } if (isTypeOperation) @@ -194,7 +194,21 @@ public class ResourceWebScriptPost extends AbstractResourceWebScript implements } } } - return ResourceWebScriptHelper.extractJsonContentAsList(req, assistant.getJsonHelper(), objType); + + if (objType == null) + { + return null; + } + + if (isTypeOperation) + { + // Operations don't support a List as json body + return ResourceWebScriptHelper.extractJsonContent(req, assistant.getJsonHelper(), objType); + } + else + { + return ResourceWebScriptHelper.extractJsonContentAsList(req, assistant.getJsonHelper(), objType); + } }