From d2f87124be5431c8192e61107a58a0bce8969fe4 Mon Sep 17 00:00:00 2001 From: Danylo Date: Wed, 9 Apr 2025 16:59:15 +0200 Subject: [PATCH] Fix NPE --- .../prebid/server/hooks/execution/HookStageExecutor.java | 6 +++--- .../prebid/server/hooks/execution/model/ExecutionPlan.java | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/prebid/server/hooks/execution/HookStageExecutor.java b/src/main/java/org/prebid/server/hooks/execution/HookStageExecutor.java index cdb946f8d37..0f96bb31c6f 100644 --- a/src/main/java/org/prebid/server/hooks/execution/HookStageExecutor.java +++ b/src/main/java/org/prebid/server/hooks/execution/HookStageExecutor.java @@ -9,6 +9,7 @@ import io.vertx.core.Vertx; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.map.DefaultedMap; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -155,7 +156,7 @@ private static ExecutionPlan parseExecutionPlan(String executionPlan, JacksonMap } private static ExecutionPlan validateExecutionPlan(ExecutionPlan plan, HookCatalog hookCatalog) { - plan.getEndpoints().values().stream() + MapUtils.emptyIfNull(plan.getEndpoints()).values().stream() .map(EndpointExecutionPlan::getStages) .map(Map::entrySet) .flatMap(Collection::stream) @@ -412,8 +413,7 @@ private StageExecutionPlan effectiveStagePlanFrom( } private static StageExecutionPlan stagePlanFrom(ExecutionPlan executionPlan, Endpoint endpoint, Stage stage) { - return executionPlan - .getEndpoints() + return MapUtils.emptyIfNull(executionPlan.getEndpoints()) .getOrDefault(endpoint, EndpointExecutionPlan.empty()) .getStages() .getOrDefault(stage, StageExecutionPlan.empty()); diff --git a/src/main/java/org/prebid/server/hooks/execution/model/ExecutionPlan.java b/src/main/java/org/prebid/server/hooks/execution/model/ExecutionPlan.java index 8d865c26a90..7137cef162d 100644 --- a/src/main/java/org/prebid/server/hooks/execution/model/ExecutionPlan.java +++ b/src/main/java/org/prebid/server/hooks/execution/model/ExecutionPlan.java @@ -4,14 +4,13 @@ import lombok.Value; import org.prebid.server.model.Endpoint; -import java.util.Collections; import java.util.List; import java.util.Map; @Value(staticConstructor = "of") public class ExecutionPlan { - private static final ExecutionPlan EMPTY = of(null, Collections.emptyMap()); + private static final ExecutionPlan EMPTY = of(null, null); @JsonProperty("abtests") List abTests;