diff --git a/src/main/java/org/gridsuite/modification/modifications/byfilter/AbstractModificationByAssignment.java b/src/main/java/org/gridsuite/modification/modifications/byfilter/AbstractModificationByAssignment.java index 3d4013cb..98d6b9e8 100644 --- a/src/main/java/org/gridsuite/modification/modifications/byfilter/AbstractModificationByAssignment.java +++ b/src/main/java/org/gridsuite/modification/modifications/byfilter/AbstractModificationByAssignment.java @@ -42,6 +42,7 @@ public abstract class AbstractModificationByAssignment extends AbstractModification { public static final String VALUE_KEY_FILTER_NAME = "filterName"; public static final String VALUE_KEY_FIELD_NAME = "fieldName"; + public static final String VALUE_KEY_NAME = "name"; public static final String VALUE_KEY_EQUIPMENT_NAME = "equipmentName"; public static final String VALUE_KEY_EQUIPMENT_TYPE = "equipmentType"; public static final String VALUE_KEY_EQUIPMENT_COUNT = "equipmentCount"; @@ -299,6 +300,16 @@ private void applyOnFilterEquipments(Network network, FilterInfos filterInfos) { FilterEquipments filterEquipments = filterUuidEquipmentsMap.get(filterInfos.getId()); + if (filterEquipments == null) { + reports.add(ReportNode.newRootReportNode() + .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) + .withMessageTemplate("network.modification.filterNotFound") + .withUntypedValue(VALUE_KEY_NAME, filterInfos.getName()) + .withSeverity(TypedValue.WARN_SEVERITY) + .build()); + return; + } + if (CollectionUtils.isEmpty(filterEquipments.getIdentifiableAttributes())) { reports.add(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) diff --git a/src/test/java/org/gridsuite/modification/modifications/byfilter/assignment/GeneratorModificationByAssignmentTest.java b/src/test/java/org/gridsuite/modification/modifications/byfilter/assignment/GeneratorModificationByAssignmentTest.java index 954f00aa..c46f509f 100644 --- a/src/test/java/org/gridsuite/modification/modifications/byfilter/assignment/GeneratorModificationByAssignmentTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/byfilter/assignment/GeneratorModificationByAssignmentTest.java @@ -11,6 +11,7 @@ import com.powsybl.iidm.network.extensions.*; import org.gridsuite.filter.utils.EquipmentType; import org.gridsuite.modification.dto.FilterEquipments; +import org.gridsuite.modification.dto.FilterInfos; import org.gridsuite.modification.dto.IdentifiableAttributes; import org.gridsuite.modification.dto.ModificationByAssignmentInfos; import org.gridsuite.modification.dto.byfilter.assignment.AssignmentInfos; @@ -301,6 +302,12 @@ protected List> getAssignmentInfos() { .filters(List.of(filter6)) .build(); + DoubleAssignmentInfos assignmentInfos20 = DoubleAssignmentInfos.builder() + .editedField(GeneratorField.Q_PERCENT.name()) + .value(120.) + .filters(List.of(new FilterInfos(UUID.randomUUID(), "filterNotFound"))) + .build(); + List> infosList = super.getAssignmentInfos(); infosList.addAll(List.of( assignmentInfos1, @@ -321,7 +328,8 @@ protected List> getAssignmentInfos() { assignmentInfos16, assignmentInfos17, assignmentInfos18, - assignmentInfos19 + assignmentInfos19, + assignmentInfos20 )); return infosList;