RED-6770: Fixed lazy init exception in dossier template import by eagerly fetching the needed collection

This commit is contained in:
Viktor Seifert 2023-05-17 15:37:19 +02:00
parent 58fe156920
commit a8a612de55
2 changed files with 25 additions and 7 deletions

View File

@ -604,8 +604,7 @@ public class DossierTemplateImportService {
private void updateTypes(ImportTemplateResult request, String dossierTemplateId) {
List<TypeEntity> currentTypes = dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId)
.getDossierTypes()
List<TypeEntity> currentTypes = dossierTemplatePersistenceService.getTypesForDossierTemplate(dossierTemplateId)
.stream()
.filter(t -> t.getDossierId() == null)
.collect(Collectors.toList());

View File

@ -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();
}