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);

Reply via email to