From 6a37749c98d060e09f5489fefab243f7f4286c19 Mon Sep 17 00:00:00 2001 From: Javokhir Abdullaev <101543142+JavokhirAbdullayev@users.noreply.github.com> Date: Tue, 3 Sep 2024 16:42:45 +0500 Subject: [PATCH] MODINV-1069 Fix DataImportConsumerVerticleTest in mod-inventory and Fix NPE in HoldingsItemMatcher (#757) * Fix DataImportConsumerVerticleTest in mod-inventory and Fix NPE in HoldingsItemMatcher * Fix DataImportConsumerVerticleTest in mod-inventory and Fix NPE in HoldingsItemMatcher * small fix * small fix --- .../handlers/matching/loaders/HoldingLoader.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/folio/inventory/dataimport/handlers/matching/loaders/HoldingLoader.java b/src/main/java/org/folio/inventory/dataimport/handlers/matching/loaders/HoldingLoader.java index d3acb0e5f..44a8364bb 100644 --- a/src/main/java/org/folio/inventory/dataimport/handlers/matching/loaders/HoldingLoader.java +++ b/src/main/java/org/folio/inventory/dataimport/handlers/matching/loaders/HoldingLoader.java @@ -4,13 +4,11 @@ import static org.apache.commons.lang3.StringUtils.EMPTY; import static org.apache.commons.lang3.StringUtils.isNotEmpty; +import io.vertx.core.json.Json; +import io.vertx.core.json.JsonObject; import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; - -import io.vertx.core.json.Json; -import io.vertx.core.json.JsonObject; - import org.folio.DataImportEventPayload; import org.folio.HoldingsRecord; import org.folio.inventory.common.Context; @@ -26,6 +24,7 @@ public class HoldingLoader extends AbstractLoader { private static final String HOLDINGS_FIELD = "holdings"; private static final String INSTANCE_ID_FIELD = "instanceId"; private static final String INSTANCES_IDS_KEY = "INSTANCES_IDS"; + private static final String EMPTY_ARRAY = "[]"; private Storage storage; private AbstractPreloader preloader; @@ -59,7 +58,7 @@ protected String addCqlSubMatchCondition(DataImportEventPayload eventPayload) { cqlSubMatch = getConditionByMultiMatchResult(eventPayload); } else if (isNotEmpty(eventPayload.getContext().get(INSTANCES_IDS_KEY))) { cqlSubMatch = getConditionByMultipleMarcBibMatchResult(eventPayload); - } else if (isNotEmpty(eventPayload.getContext().get(EntityType.HOLDINGS.value()))) { + } else if (isNotNullOrEmpty(eventPayload.getContext().get(EntityType.HOLDINGS.value()))) { JsonObject holdingAsJson = new JsonObject(eventPayload.getContext().get(EntityType.HOLDINGS.value())); if (holdingAsJson.getJsonObject(HOLDINGS_FIELD) != null) { holdingAsJson = holdingAsJson.getJsonObject(HOLDINGS_FIELD); @@ -73,6 +72,12 @@ protected String addCqlSubMatchCondition(DataImportEventPayload eventPayload) { return cqlSubMatch; } + private static boolean isNotNullOrEmpty(String value) { + if (value == null || value.equals(EMPTY_ARRAY)) + return false; + return isNotEmpty(value); + } + private String getConditionByMultipleMarcBibMatchResult(DataImportEventPayload eventPayload) { return getConditionByMultipleValues(INSTANCE_ID_FIELD, eventPayload, INSTANCES_IDS_KEY); }