From 4776b962207d222ae4820e9b12b981cce620dac3 Mon Sep 17 00:00:00 2001 From: Hugo Marcellin Date: Fri, 26 Jun 2026 17:03:09 +0200 Subject: [PATCH] Fix nested composite cut operations --- .../server/service/NetworkModificationService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 b8245ad7b..d3a206aaa 100644 --- a/src/main/java/org/gridsuite/modification/server/service/NetworkModificationService.java +++ b/src/main/java/org/gridsuite/modification/server/service/NetworkModificationService.java @@ -395,13 +395,13 @@ public CompletableFuture moveModifications(@NonNull Set selectedCompositeUuids = modificationRepository.findExistingCompositeModificationIds(modificationsToMoveUuids); // Get all children of selected composites (to skip sub-modifications that move with their ancestor) - Set childrenOfSelectedComposites = selectedCompositeUuids.isEmpty() + Set childrenOfSelectedComposites = new HashSet<>(selectedCompositeUuids.isEmpty() ? Set.of() - : new HashSet<>(networkModificationRepository.findAllChildrenUuids(new ArrayList<>(selectedCompositeUuids))); + : new HashSet<>(networkModificationRepository.findAllChildrenUuids(new ArrayList<>(selectedCompositeUuids)))); + childrenOfSelectedComposites.removeAll(selectedCompositeUuids); // Sub-modifications: selected UUIDs that are not composite roots and not already covered by a selected ancestor List subModificationUuids = modificationsToMoveUuids.stream() - .filter(uuid -> !selectedCompositeUuids.contains(uuid)) .filter(uuid -> !childrenOfSelectedComposites.contains(uuid)) .toList(); for (UUID uuid : subModificationUuids) {