Source:
private void handleTask(Task task, Map<String, Object> parameters, boolean isRetry) { long activityId = activityService.addTaskStarted(task, parameters); Map<String, Object> metadata = prepareTaskMetadata(task.getId(), activityId, isRetry); TaskContext taskContext = new TaskContext(task, parameters, metadata, activityService); TaskInitializer initializer = new TaskInitializer(taskContext); List<FilterSet> filterSet = new ArrayList<>(task.getTaskConfig().getFilters()); TaskFilterExecutor taskFilterExecutor = new TaskFilterExecutor(); boolean result = true; int executedActions = 0; int checkedFilters = 0; int actualFilterIndex = initializer.getActionFilters(); try { LOGGER.info("Executing all actions from task: {}", task.getName()); if (initializer.evalConfigSteps(dataProviders)) { while (result && executedActions < task.getActions().size()) { if (filterSet.size() > 0 && actualFilterIndex < filterSet.size() && filterSet.get(actualFilterIndex).getActionOrder() == checkedFilters) { result = taskFilterExecutor.checkFilters(filterSet.get(actualFilterIndex).getFilters(), filterSet.get(actualFilterIndex).getOperator(), taskContext); actualFilterIndex += 1; } else { executor.execute(task, task.getActions().get(executedActions), executedActions, taskContext, activityId); executedActions += 1; } checkedFilters += 1; } } LOGGER.warn("Actions from task: weren't executed, because config steps didn't pass the evaluation", task.getName()); } catch (TaskHandlerException e) { postExecutionHandler.handleError(parameters, metadata, task, e, activityId); } catch (RuntimeException e) { postExecutionHandler.handleError(parameters, metadata, task, new TaskHandlerException(TRIGGER, "task.error.unrecognizedError", e), activityId); } }

Target:
private void handleTask(Task task, Map<String, Object> parameters, boolean isRetry) { long activityId = activityService.addTaskStarted(task, parameters); Map<String, Object> metadata = prepareTaskMetadata(task.getId(), activityId, isRetry); TaskContext taskContext = new TaskContext(task, parameters, metadata, activityService); TaskInitializer initializer = new TaskInitializer(taskContext); List<FilterSet> filterSetList = new ArrayList<>(task.getTaskConfig().getFilters()); boolean actionFilterResult = true; int executedActions = 0; int step = 0; int actualFilterIndex = initializer.getActionFilters(); try { LOGGER.info("Executing all actions from task: {}", task.getName()); if (initializer.evalConfigSteps(dataProviders)) { while (actionFilterResult && executedActions < task.getActions().size()) { if (shouldCheckFilter(filterSetList, actualFilterIndex, step)) { actionFilterResult = initializer.checkActionFilter(actualFilterIndex, filterSetList); actualFilterIndex += 1; } else { executor.execute(task, task.getActions().get(executedActions), executedActions, taskContext, activityId); executedActions += 1; } step += 1; } } else { activityService.addTaskFiltered(activityId); } LOGGER.warn("Actions from task: weren't executed, because config steps didn't pass the evaluation", task.getName()); } catch (TaskHandlerException e) { postExecutionHandler.handleError(parameters, metadata, task, e, activityId); } catch (RuntimeException e) { postExecutionHandler.handleError(parameters, metadata, task, new TaskHandlerException(TRIGGER, "task.error.unrecognizedError", e), activityId); } }