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 6bceee191..4a7e58fa9 100644 --- a/src/main/java/org/gridsuite/modification/server/service/NetworkModificationService.java +++ b/src/main/java/org/gridsuite/modification/server/service/NetworkModificationService.java @@ -399,13 +399,13 @@ public CompletableFuture moveModifications( 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) {