Execution stats may mismatch real changes caused by custom stage listener code.
For example, there is dry delete stage listener code:
public class DryDeleteStageListener<T extends BaseDataObject> {
private static final Logger log = LoggerFactory.getLogger(DryDeleteStageListener.class);
private final Consumer<T> consumer;
public DryDeleteStageListener(Consumer<T> consumer) {
this.consumer = consumer;
}
@AfterMissingTargetsFiltered
public void afterMissingTargetsFiltered(Execution exec, DeleteSegment<T> segment) {
segment.getMissingTargets().forEach(rowProxy -> consumer.accept((T) rowProxy.get(DeleteSegment.TARGET_COLUMN)));
log.debug("Setting an empty list for the missing targets.");
segment.setMissingTargets(DataFrameBuilder.builder().empty());
}
}
Though really there are no records have been deleted.
For example, the cause of the issue for delete task stats is current implementation in com.nhl.link.move.runtime.task.delete.DeleteStatsListener for @AfterMissingTargetsFiltered event. It increments delete stats value as:
Execution stats may mismatch real changes caused by custom stage listener code.
For example, there is dry delete stage listener code:
And a LinkMove task like:
Then its execution report will look like:
Though really there are no records have been deleted.
For example, the cause of the issue for delete task stats is current implementation in com.nhl.link.move.runtime.task.delete.DeleteStatsListener for @AfterMissingTargetsFiltered event. It increments delete stats value as: