docs: public void leave(DelegateExecution execution) {
      FlowElement currentFlowElement = execution.getCurrentFlowElement();
      Collection<BoundaryEvent> boundaryEvents = findBoundaryEventsForFlowNode(execution.getProcessDefinitionId(), currentFlowElement);
      if (CollectionUtil.isNotEmpty(boundaryEvents)) {
        executeCompensateBoundaryEvents(boundaryEvents, execution);
      }
      if (!hasLoopCharacteristics()) {
        super.leave(execution);
      } else if (hasMultiInstanceCharacteristics()) {
        multiInstanceActivityBehavior.leave(execution);
      }
    }