From a8a612de55d8ae72e872eca984e847440344657f Mon Sep 17 00:00:00 2001 From: Viktor Seifert Date: Wed, 17 May 2023 15:37:19 +0200 Subject: [PATCH] RED-6770: Fixed lazy init exception in dossier template import by eagerly fetching the needed collection --- .../service/DossierTemplateImportService.java | 3 +- .../tests/DossierTemplateImportTest.java | 29 +++++++++++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java index 58e233ad4..87c1aad71 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java @@ -604,8 +604,7 @@ public class DossierTemplateImportService { private void updateTypes(ImportTemplateResult request, String dossierTemplateId) { - List currentTypes = dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId) - .getDossierTypes() + List currentTypes = dossierTemplatePersistenceService.getTypesForDossierTemplate(dossierTemplateId) .stream() .filter(t -> t.getDossierId() == null) .collect(Collectors.toList()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java index cde9b34c4..23a530bde 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java @@ -110,15 +110,34 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT } - private void testDossierTemplateImport(byte[] archive) { + private DossierTemplate testDossierTemplateImport(byte[] archive) { - var request = new ImportDossierTemplateRequest(); - request.setArchive(archive); - request.setUpdateExistingDossierTemplate(false); - request.setUserId("system"); + var request = ImportDossierTemplateRequest.builder().archive(archive).updateExistingDossierTemplate(false).userId("system").build(); DossierTemplate dossierTemplate = dossierTemplateManagementService.importDossierTemplate(request); assertThat(dossierTemplate).isNotNull(); assertThat(dossierTemplate.getId()).isNotBlank(); + return dossierTemplate; + } + + + @SneakyThrows + @Test + public void testDossierTemplateImportOverwrite() { + + TenantContext.setTenantId("redaction"); + + var archive = loadFileFromClasspath("EFSA_sanitisation_GFL_v1.zip"); + var dossierTemplate = testDossierTemplateImport(archive); + + var request = ImportDossierTemplateRequest.builder() + .archive(archive) + .updateExistingDossierTemplate(true) + .userId("system") + .dossierTemplateId(dossierTemplate.getId()) + .build(); + DossierTemplate reimportedTemplate = dossierTemplateManagementService.importDossierTemplate(request); + assertThat(reimportedTemplate).isNotNull(); + assertThat(reimportedTemplate.getId()).isNotBlank(); }