Juan Ramos created GEODE-7259: --------------------------------- Summary: Function Execution Through REST API Limitation Key: GEODE-7259 URL: https://issues.apache.org/jira/browse/GEODE-7259 Project: Geode Issue Type: Bug Components: docs, rest (dev) Reporter: Juan Ramos
Function execution through the {{REST API}} doesn't support nested collections as part of the parameters, this is an undocumented limitation. We basically try to convert the {{JSON}} parameters into a {{Map}} and afterwards, based on the {{Map}} contents and the {{@type}} value within the JSON string, convert that into the actual {{Object[]}} parameters expected by the function. If any of those objects contain an inner collection ([] as JSON) or object ({} as JSON), the initial parsing will always fail: {code:title=AbstractBaseController.java|borderStyle=solid} private Map<?, ?> convertJsonToMap(final String jsonString) { Map<String, String> map = new HashMap<String, String>(); // convert JSON string to Map try { map = objectMapper.readValue(jsonString, new TypeReference<HashMap<String, String>>() {}); } catch (JsonParseException e) { throw new MalformedJsonException( "Bind params specified as JSON document in the request is incorrect!", e); } catch (JsonMappingException e) { throw new MalformedJsonException( "Server unable to process bind params specified as JSON document in the request!", e); } catch (IOException e) { throw new GemfireRestException("Server has encountered error while process this request!", e); } return map; } {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)