From f1a21896b0b6a6bd9e2f3825cee362b85a61a126 Mon Sep 17 00:00:00 2001 From: David BRAQUART Date: Thu, 16 Oct 2025 20:20:57 +0200 Subject: [PATCH 1/2] before node build, dont load excluded, inactive or stashed modifications Signed-off-by: David BRAQUART --- .../repositories/NetworkModificationRepository.java | 12 ++++++++++-- .../server/service/NetworkModificationService.java | 4 +--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/server/repositories/NetworkModificationRepository.java b/src/main/java/org/gridsuite/modification/server/repositories/NetworkModificationRepository.java index 39f2ce3ba..0f8bfa4d5 100644 --- a/src/main/java/org/gridsuite/modification/server/repositories/NetworkModificationRepository.java +++ b/src/main/java/org/gridsuite/modification/server/repositories/NetworkModificationRepository.java @@ -458,9 +458,17 @@ private List getModificationsEntitiesNonTransactional(List getActiveModificationsEntities(List groupUuids, Set modificationsToExclude) { + Stream entityStream = groupUuids.stream().flatMap(this::getModificationEntityStream); + return entityStream + .filter(m -> modificationsToExclude == null || !modificationsToExclude.contains(m.getId())) + .filter(m -> !m.getStashed() && m.getActivated()) + .toList(); + } + @Transactional(readOnly = true) - public List getModificationsEntities(List groupUuids, boolean onlyStashed) { - List modificationsEntities = getModificationsEntitiesNonTransactional(groupUuids, onlyStashed); + public List getModificationsEntities(List groupUuids, Set modificationsToExclude) { + List modificationsEntities = getActiveModificationsEntities(groupUuids, modificationsToExclude); loadFullModificationsEntities(modificationsEntities); return modificationsEntities; } diff --git a/src/main/java/org/gridsuite/modification/server/service/NetworkModificationService.java b/src/main/java/org/gridsuite/modification/server/service/NetworkModificationService.java index 0fdf5c86e..3f560d4fa 100644 --- a/src/main/java/org/gridsuite/modification/server/service/NetworkModificationService.java +++ b/src/main/java/org/gridsuite/modification/server/service/NetworkModificationService.java @@ -243,10 +243,8 @@ public NetworkModificationResult buildVariant(@NonNull UUID networkUuid, @NonNul List modifications = List.of(); try { // FullDto needed for toModificationInfos() after the modifications have been applied - modifications = networkModificationRepository.getModificationsEntities(List.of(groupUuid), false) + modifications = networkModificationRepository.getModificationsEntities(List.of(groupUuid), modificationsToExclude) .stream() - .filter(m -> modificationsToExclude == null || !modificationsToExclude.contains(m.getId())) - .filter(m -> !m.getStashed()) .toList(); } catch (NetworkModificationException e) { if (e.getType() != MODIFICATION_GROUP_NOT_FOUND) { // May not exist From 42a8cdcf58311e8021024f497114c28a98bf5966 Mon Sep 17 00:00:00 2001 From: David BRAQUART Date: Tue, 21 Oct 2025 12:39:42 +0200 Subject: [PATCH 2/2] use single group Signed-off-by: David BRAQUART --- .../NetworkModificationRepository.java | 15 +++++---------- .../service/NetworkModificationService.java | 2 +- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/server/repositories/NetworkModificationRepository.java b/src/main/java/org/gridsuite/modification/server/repositories/NetworkModificationRepository.java index 58f735284..24947cf2d 100644 --- a/src/main/java/org/gridsuite/modification/server/repositories/NetworkModificationRepository.java +++ b/src/main/java/org/gridsuite/modification/server/repositories/NetworkModificationRepository.java @@ -422,17 +422,12 @@ private List getModificationsEntitiesNonTransactional(List getActiveModificationsEntities(List groupUuids, Set modificationsToExclude) { - Stream entityStream = groupUuids.stream().flatMap(this::getModificationEntityStream); - return entityStream - .filter(m -> modificationsToExclude == null || !modificationsToExclude.contains(m.getId())) - .filter(m -> !m.getStashed() && m.getActivated()) - .toList(); - } - @Transactional(readOnly = true) - public List getModificationsEntities(List groupUuids, Set modificationsToExclude) { - List modificationsEntities = getActiveModificationsEntities(groupUuids, modificationsToExclude); + public List getActiveModificationsEntities(UUID groupUuid, Set modificationsToExclude) { + List modificationsEntities = getModificationEntityStream(groupUuid) + .filter(m -> modificationsToExclude == null || !modificationsToExclude.contains(m.getId())) + .filter(m -> !m.getStashed() && m.getActivated()) + .toList(); // TODO resolve lazy initialisation exception : replace this line by loadFullModificationsEntities modificationsEntities.forEach(ModificationEntity::toModificationInfos); return modificationsEntities; diff --git a/src/main/java/org/gridsuite/modification/server/service/NetworkModificationService.java b/src/main/java/org/gridsuite/modification/server/service/NetworkModificationService.java index 3f560d4fa..14b7f2260 100644 --- a/src/main/java/org/gridsuite/modification/server/service/NetworkModificationService.java +++ b/src/main/java/org/gridsuite/modification/server/service/NetworkModificationService.java @@ -243,7 +243,7 @@ public NetworkModificationResult buildVariant(@NonNull UUID networkUuid, @NonNul List modifications = List.of(); try { // FullDto needed for toModificationInfos() after the modifications have been applied - modifications = networkModificationRepository.getModificationsEntities(List.of(groupUuid), modificationsToExclude) + modifications = networkModificationRepository.getActiveModificationsEntities(groupUuid, modificationsToExclude) .stream() .toList(); } catch (NetworkModificationException e) {