From 1b57302dfdea9faa0b629bf4c18ae855d915672f Mon Sep 17 00:00:00 2001 From: dhruvjoshi Date: Thu, 28 Nov 2024 01:37:26 +0530 Subject: [PATCH] INFRA-4022 | Dhruv | fixes flatmap ignoring empty collection --- kutegen | 2 +- .../com/navi/infra/portal/util/FlatMapUtil.java | 14 +++++++++++--- .../com/navi/infra/portal/util/MapDiffUtil.java | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/kutegen b/kutegen index 642f6747..81f19c99 160000 --- a/kutegen +++ b/kutegen @@ -1 +1 @@ -Subproject commit 642f67474df496be95a52ac3c63e1249cd985dec +Subproject commit 81f19c99471fc7a995759c7dd60978f33e786979 diff --git a/src/main/java/com/navi/infra/portal/util/FlatMapUtil.java b/src/main/java/com/navi/infra/portal/util/FlatMapUtil.java index f3c1e95c..db5411db 100644 --- a/src/main/java/com/navi/infra/portal/util/FlatMapUtil.java +++ b/src/main/java/com/navi/infra/portal/util/FlatMapUtil.java @@ -34,6 +34,9 @@ public final class FlatMapUtil { final var root = entry.getKey(); if (entry.getValue() instanceof Map) { Map properties = (Map) entry.getValue(); + if (properties.isEmpty()) { + return Stream.of(new SimpleEntry<>(root, Map.of())); + } return properties.entrySet() .stream() .map(e -> mapToEntry(root, e)) @@ -42,6 +45,9 @@ public final class FlatMapUtil { if (entry.getValue() instanceof List) { List list = (List) entry.getValue(); + if (list.isEmpty()) { + return Stream.of(new SimpleEntry<>(root, List.of())); + } return IntStream.range(0, list.size()) .mapToObj(i -> mapToEntry(root, list.get(i), i)) .flatMap(FlatMapUtil::flatten); @@ -54,8 +60,10 @@ public final class FlatMapUtil { return new SimpleEntry<>(getKey(root, e), e.getValue()); } - private static SimpleEntry mapToEntry(final String root, final Object value, - final int i) { + private static SimpleEntry mapToEntry( + final String root, final Object value, + final int i + ) { return new SimpleEntry<>(getKey(root, i), value); } @@ -66,4 +74,4 @@ public final class FlatMapUtil { private static String getKey(final String root, final int index) { return root + "/" + index; } -} +} \ No newline at end of file diff --git a/src/main/java/com/navi/infra/portal/util/MapDiffUtil.java b/src/main/java/com/navi/infra/portal/util/MapDiffUtil.java index 575c3713..90d1ded2 100644 --- a/src/main/java/com/navi/infra/portal/util/MapDiffUtil.java +++ b/src/main/java/com/navi/infra/portal/util/MapDiffUtil.java @@ -110,7 +110,7 @@ public class MapDiffUtil { final var result = new HashMap(); for (var e : map.entrySet()) { Entry entry = e; - if (e.getKey().contains("environmentVariables")) { + if (e.getKey().contains("environmentVariables/")) { entry = mapEnvVarToKey(map).apply(e); } result.put(entry.getKey(), entry.getValue());