From 7c9cf172bbc75c006085e9cf7698faab06f8c310 Mon Sep 17 00:00:00 2001 From: vahid torkaman Date: Mon, 6 Oct 2025 10:00:59 +0200 Subject: [PATCH] fix handling materializations --- .../confidence/SwapWasmResolverApi.java | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/openfeature-provider-local/src/main/java/com/spotify/confidence/SwapWasmResolverApi.java b/openfeature-provider-local/src/main/java/com/spotify/confidence/SwapWasmResolverApi.java index a8afd538..f3807ff0 100644 --- a/openfeature-provider-local/src/main/java/com/spotify/confidence/SwapWasmResolverApi.java +++ b/openfeature-provider-local/src/main/java/com/spotify/confidence/SwapWasmResolverApi.java @@ -167,23 +167,21 @@ private ResolveWithStickyRequest handleMissingMaterializations( } catch (InterruptedException | ExecutionException e) { throw new RuntimeException(e); } - materializationPerUnitMap.put( + materializationPerUnitMap.computeIfAbsent( unit, - MaterializationMap.newBuilder() - .putAllInfoMap( - loadedAssignments.entrySet().stream() - .collect( - Collectors.toMap( - Map.Entry::getKey, - e -> { - final var info = e.getValue(); - return com.spotify.confidence.flags.resolver.v1 - .MaterializationInfo.newBuilder() - .setUnitInInfo(info.isUnitInMaterialization()) - .putAllRuleToVariant(info.ruleToVariant()) - .build(); - }))) - .build()); + k -> MaterializationMap.newBuilder().putAllInfoMap(new HashMap<>()).build()); + materializationPerUnitMap.computeIfPresent( + unit, + (k, v) -> { + final Map< + String, com.spotify.confidence.flags.resolver.v1.MaterializationInfo> + map = new HashMap<>(); + loadedAssignments.forEach( + (s, materializationInfo) -> { + map.put(s, materializationInfo.toProto()); + }); + return v.toBuilder().putAllInfoMap(map).build(); + }); }); });