diff --git a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/ComponentControllerV2.java b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/ComponentControllerV2.java index f01d4cd48..9d371b240 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/ComponentControllerV2.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/ComponentControllerV2.java @@ -5,6 +5,7 @@ import com.iqser.red.persistence.service.v1.external.api.impl.controller.Dossier import com.iqser.red.persistence.service.v1.external.api.impl.controller.StatusController; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentOverrideService; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentEntityReference; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides; import com.iqser.red.service.persistence.service.v2.api.external.model.Component; @@ -47,14 +48,17 @@ public class ComponentControllerV2 implements ComponentResource { var overrides = componentOverrideService.getOverrides(dossierId, fileId); Map> components = new HashMap<>(); - componentLog.getComponentLogCategories().forEach(c -> { + List componentLogCategories = componentLog.getComponentLogCategories(); + if (componentLogCategories != null && !componentLogCategories.isEmpty()) { + componentLogCategories.forEach(c -> { - if (overrides.getComponentOverrides().containsKey(c.getCategory())) { - components.computeIfAbsent(c.getCategory(), (x) -> new ArrayList<>()).add(overrides.getComponentOverrides().get(c.getCategory())); - } else { - components.computeIfAbsent(c.getCategory(), (x) -> new ArrayList<>()).addAll(c.getComponentLogEntries().stream().map(ComponentLogEntry::getValue).toList()); - } - }); + if (overrides.getComponentOverrides() != null && overrides.getComponentOverrides().containsKey(c.getCategory())) { + components.computeIfAbsent(c.getCategory(), (x) -> new ArrayList<>()).add(overrides.getComponentOverrides().get(c.getCategory())); + } else { + components.computeIfAbsent(c.getCategory(), (x) -> new ArrayList<>()).addAll(c.getComponentLogEntries().stream().map(ComponentLogEntry::getValue).toList()); + } + }); + } Map> componentsDetails = new HashMap<>(); if (includeDetails) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentOverrideService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentOverrideService.java index f84f37ba7..acb59210d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentOverrideService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentOverrideService.java @@ -39,9 +39,12 @@ public class ComponentOverrideService { @SneakyThrows public ComponentsOverrides getOverrides(String dossierId, String fileId) { + var exists = fileManagementStorageService.objectExists(dossierId, fileId, FileType.COMPONENTS); + if (!exists) { + return ComponentsOverrides.builder().build(); + } var existingComponentsBytes = fileManagementStorageService.getStoredObjectBytes(dossierId, fileId, FileType.COMPONENTS); - var existingComponents = objectMapper.readValue(existingComponentsBytes, ComponentsOverrides.class); - return existingComponents; + return objectMapper.readValue(existingComponentsBytes, ComponentsOverrides.class); }