From 4e0402df9545a93dd29d74de1d913d62891c2853 Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Tue, 15 Mar 2022 17:55:40 +0200 Subject: [PATCH] Fix issue with prefilling Mapper and empty array values --- .../eu/eudat/logic/mapper/prefilling/PrefillingMapper.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/mapper/prefilling/PrefillingMapper.java b/dmp-backend/web/src/main/java/eu/eudat/logic/mapper/prefilling/PrefillingMapper.java index f54086649..b869320e9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/mapper/prefilling/PrefillingMapper.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/mapper/prefilling/PrefillingMapper.java @@ -67,7 +67,7 @@ public class PrefillingMapper { } JsonNode valueNode = mapper.readTree(value); List parsedValues = new ArrayList<>(); - if (valueNode.isArray() && (!valueNode.get(0).isTextual())) { + if (valueNode.isArray() && (valueNode.get(0) != null && !valueNode.get(0).isTextual())) { if (prefillingMapping.getSubSource() == null || prefillingMapping.getSubSource().isEmpty()) { throw new IllegalArgumentException("Source value is an array but no subSource field have been set"); } @@ -83,7 +83,7 @@ public class PrefillingMapper { String parsedValue = null; if (valueNode.isTextual()) { parsedValue = valueNode.textValue().replace(trimRegex, ""); - }else if (valueNode.isArray() && valueNode.get(0).isTextual()) { + }else if (valueNode.isArray() && (valueNode.get(0) != null && valueNode.get(0).isTextual())) { List values = new LinkedList<>(); for (int i = 0; i < valueNode.size(); i++) { values.add(valueNode.get(i).textValue().replace(trimRegex, ""));