diff --git a/src/main/java/org/gridsuite/modification/server/modifications/NetworkModificationApplicator.java b/src/main/java/org/gridsuite/modification/server/modifications/NetworkModificationApplicator.java index 3d9a06003..a06a6f0b7 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/NetworkModificationApplicator.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/NetworkModificationApplicator.java @@ -106,16 +106,18 @@ public NetworkModificationResult applyModifications(ModificationApplicationGroup .orElse(PreloadingStrategy.NONE); NetworkStoreListener listener = NetworkStoreListener.create(networkInfos.getNetwork(), networkInfos.getNetworkUuuid(), networkStoreService, equipmentInfosService, applicationInfosService, collectionThreshold); - ApplicationStatus groupApplicationStatus; if (preloadingStrategy == PreloadingStrategy.ALL_COLLECTIONS_NEEDED_FOR_BUS_VIEW) { - groupApplicationStatus = largeNetworkModificationExecutionService - .supplyAsync(() -> apply(modificationInfosGroup, listener)) + return largeNetworkModificationExecutionService + .supplyAsync(() -> applyAndFlush(modificationInfosGroup, listener)) .join(); } else { - groupApplicationStatus = apply(modificationInfosGroup, listener); + return applyAndFlush(modificationInfosGroup, listener); } + } - return flushModificationApplications(groupApplicationStatus, listener); + private NetworkModificationResult applyAndFlush(ModificationApplicationGroup modificationInfosGroup, + NetworkStoreListener listener) { + return flushModificationApplications(apply(modificationInfosGroup, listener), listener); } private NetworkModificationResult flushModificationApplications(ApplicationStatus groupApplicationStatus, NetworkStoreListener listener) { @@ -147,16 +149,18 @@ public NetworkModificationResult applyModifications(List groupsApplicationStatuses; if (preloadingStrategy == PreloadingStrategy.ALL_COLLECTIONS_NEEDED_FOR_BUS_VIEW) { - groupsApplicationStatuses = largeNetworkModificationExecutionService - .supplyAsync(() -> apply(modificationInfosGroups, listener)) + return largeNetworkModificationExecutionService + .supplyAsync(() -> applyAndFlush(modificationInfosGroups, listener)) .join(); } else { - groupsApplicationStatuses = apply(modificationInfosGroups, listener); + return applyAndFlush(modificationInfosGroups, listener); } + } - return flushModificationApplications(groupsApplicationStatuses, listener); + private NetworkModificationResult applyAndFlush(List modificationInfosGroups, + NetworkStoreListener listener) { + return flushModificationApplications(apply(modificationInfosGroups, listener), listener); } // This method is used when building a variant