diff --git a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/semanticdata/listeners/SemanticDataInitializer.java b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/semanticdata/listeners/SemanticDataInitializer.java index f298f45db3..22b4e519bf 100644 --- a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/semanticdata/listeners/SemanticDataInitializer.java +++ b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/semanticdata/listeners/SemanticDataInitializer.java @@ -18,6 +18,7 @@ import org.eclipse.sirius.web.domain.boundedcontexts.semanticdata.services.api.ISemanticDataCreationService; import org.springframework.data.jdbc.core.mapping.AggregateReference; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.event.TransactionalEventListener; @@ -35,7 +36,7 @@ public SemanticDataInitializer(ISemanticDataCreationService semanticDataCreation this.semanticDataCreationService = Objects.requireNonNull(semanticDataCreationService); } - @Transactional + @Transactional(propagation = Propagation.REQUIRES_NEW) @TransactionalEventListener public void onProjectCreatedEvent(ProjectCreatedEvent event) { this.semanticDataCreationService.initialize(AggregateReference.to(event.project().getId())); diff --git a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/ProjectControllerIntegrationTests.java b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/ProjectControllerIntegrationTests.java index 1954138e4a..d81bed211c 100644 --- a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/ProjectControllerIntegrationTests.java +++ b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/ProjectControllerIntegrationTests.java @@ -226,7 +226,7 @@ public void givenValidProjectToCreateWhenMutationIsPerformedThenProjectIsCreated assertThat(optionalProject).isPresent(); optionalProject.ifPresent(project -> assertThat(project.getName()).isEqualTo(input.name())); - assertThat(this.domainEventCollector.getDomainEvents()).hasSize(1); + assertThat(this.domainEventCollector.getDomainEvents()).hasSize(2); var event = this.domainEventCollector.getDomainEvents().get(0); assertThat(event).isInstanceOf(ProjectCreatedEvent.class); } @@ -241,7 +241,7 @@ public void givenValidProjectToCreateWhenMutationIsPerformedThenTheSemanticDataA TestTransaction.flagForCommit(); TestTransaction.end(); - assertThat(this.domainEventCollector.getDomainEvents()).hasSize(1); + assertThat(this.domainEventCollector.getDomainEvents()).hasSize(2); var event = this.domainEventCollector.getDomainEvents().get(0); assertThat(event).isInstanceOf(ProjectCreatedEvent.class);