Commit 6eff6b67 by Madhan Neethiraj

ATLAS-2324: fix incorrect JSON parsing in V1 entity-update/create REST API

parent 15c5434d
...@@ -141,24 +141,24 @@ public class EntityResource { ...@@ -141,24 +141,24 @@ public class EntityResource {
String entities = Servlets.getRequestPayload(request); String entities = Servlets.getRequestPayload(request);
//Handle backward compatibility - if entities is not JSONArray, convert to JSONArray //Handle backward compatibility - if entities is not JSONArray, convert to JSONArray
ArrayNode jsonEntities = null; String[] jsonStrings;
try { try {
jsonEntities = AtlasJson.parseToV1ArrayNode(entities); ArrayNode jsonEntities = AtlasJson.parseToV1ArrayNode(entities);
} catch (IOException e) {
jsonEntities = AtlasJson.createV1ArrayNode();
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[0] = entities;
jsonStrings[i] = jsonEntities.get(i).asText();
} }
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("submitting entities {} ", jsonEntities); LOG.debug("submitting entities: count={}; entities-json={}", jsonStrings.length, entities);
} }
AtlasEntitiesWithExtInfo entitiesInfo = restAdapters.toAtlasEntities(jsonStrings); AtlasEntitiesWithExtInfo entitiesInfo = restAdapters.toAtlasEntities(jsonStrings);
...@@ -265,11 +265,15 @@ public class EntityResource { ...@@ -265,11 +265,15 @@ public class EntityResource {
String[] jsonStrings = new String[jsonEntities.size()]; String[] jsonStrings = new String[jsonEntities.size()];
for (int i = 0; i < jsonEntities.size(); i++) { for (int i = 0; i < jsonEntities.size(); i++) {
jsonStrings[i] = jsonEntities.get(i).asText(); jsonStrings[i] = AtlasJson.toV1Json(jsonEntities.get(i));
} }
if (LOG.isDebugEnabled()) { 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); AtlasEntitiesWithExtInfo entitiesInfo = restAdapters.toAtlasEntities(jsonStrings);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment