From d23ca0e246345ac42e1622cd757178733c58473a Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Thu, 11 Feb 2021 17:37:42 +0100 Subject: [PATCH] Fixed corner case --- .../gcube/informationsystem/utils/ElementMapper.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/gcube/informationsystem/utils/ElementMapper.java b/src/main/java/org/gcube/informationsystem/utils/ElementMapper.java index 4b2c310..ef8c1f6 100644 --- a/src/main/java/org/gcube/informationsystem/utils/ElementMapper.java +++ b/src/main/java/org/gcube/informationsystem/utils/ElementMapper.java @@ -263,19 +263,16 @@ public abstract class ElementMapper { throw new RuntimeException(stringBuffer.toString()); } - protected static JsonNode analizeFullJson(JsonNode jsonNode) { + String cls = jsonNode.get(Element.CLASS_PROPERTY).asText(); + if(!knownTypes.containsKey(cls)) { + jsonNode = setAvailableSuperclass(jsonNode); + } Iterator iterator = jsonNode.fieldNames(); while(iterator.hasNext()) { String fieldName = iterator.next(); JsonNode jn = jsonNode.get(fieldName); if(jn.getNodeType() == JsonNodeType.OBJECT) { - if(jn.has(Element.CLASS_PROPERTY)) { - String cls = jn.get(Element.CLASS_PROPERTY).asText(); - if(!knownTypes.containsKey(cls)) { - jn = setAvailableSuperclass(jn); - } - } jn = analizeFullJson(jn); ((ObjectNode) jsonNode).set(fieldName, jn); }