Repository: atlas Updated Branches: refs/heads/master 15c5434d9 -> 6eff6b67b
ATLAS-2324: fix incorrect JSON parsing in V1 entity-update/create REST API Project: http://git-wip-us.apache.org/repos/asf/atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/6eff6b67 Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/6eff6b67 Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/6eff6b67 Branch: refs/heads/master Commit: 6eff6b67b768e03e6c0a598ba49ab987b9de0db2 Parents: 15c5434 Author: Madhan Neethiraj <mad...@apache.org> Authored: Wed Dec 27 16:52:26 2017 -0800 Committer: Madhan Neethiraj <mad...@apache.org> Committed: Sat Dec 30 10:45:21 2017 -0800 ---------------------------------------------------------------------- .../atlas/web/resources/EntityResource.java | 28 +++++++++++--------- 1 file changed, 16 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/atlas/blob/6eff6b67/webapp/src/main/java/org/apache/atlas/web/resources/EntityResource.java ---------------------------------------------------------------------- diff --git a/webapp/src/main/java/org/apache/atlas/web/resources/EntityResource.java b/webapp/src/main/java/org/apache/atlas/web/resources/EntityResource.java index e3a5b1f..4256043 100755 --- a/webapp/src/main/java/org/apache/atlas/web/resources/EntityResource.java +++ b/webapp/src/main/java/org/apache/atlas/web/resources/EntityResource.java @@ -141,24 +141,24 @@ public class EntityResource { String entities = Servlets.getRequestPayload(request); //Handle backward compatibility - if entities is not JSONArray, convert to JSONArray - ArrayNode jsonEntities = null; + String[] jsonStrings; try { - jsonEntities = AtlasJson.parseToV1ArrayNode(entities); - } catch (IOException e) { - jsonEntities = AtlasJson.createV1ArrayNode(); + ArrayNode jsonEntities = AtlasJson.parseToV1ArrayNode(entities); - jsonEntities.add(entities); - } + jsonStrings = new String[jsonEntities.size()]; - String[] jsonStrings = new String[jsonEntities.size()]; + for (int i = 0; i < jsonEntities.size(); i++) { + jsonStrings[i] = AtlasJson.toV1Json(jsonEntities.get(i)); + } + } catch (IOException e) { + jsonStrings = new String[1]; - for (int i = 0; i < jsonEntities.size(); i++) { - jsonStrings[i] = jsonEntities.get(i).asText(); + jsonStrings[0] = entities; } if (LOG.isDebugEnabled()) { - LOG.debug("submitting entities {} ", jsonEntities); + LOG.debug("submitting entities: count={}; entities-json={}", jsonStrings.length, entities); } AtlasEntitiesWithExtInfo entitiesInfo = restAdapters.toAtlasEntities(jsonStrings); @@ -265,11 +265,15 @@ public class EntityResource { String[] jsonStrings = new String[jsonEntities.size()]; for (int i = 0; i < jsonEntities.size(); i++) { - jsonStrings[i] = jsonEntities.get(i).asText(); + jsonStrings[i] = AtlasJson.toV1Json(jsonEntities.get(i)); } if (LOG.isDebugEnabled()) { - LOG.info("updating entities {} ", entityJson); + LOG.debug("updateEntities(): count={}, entityJson={} ", jsonEntities.size(), entityJson); + + for (int i = 0; i < jsonStrings.length; i++) { + LOG.debug("updateEntities(): entity[{}]={}", i, jsonStrings[i]); + } } AtlasEntitiesWithExtInfo entitiesInfo = restAdapters.toAtlasEntities(jsonStrings);