code: static PatchingResult executeTasks(final IdentityPatchContext context, final IdentityPatchContext.FinalizeCallback callback) throws Exception {
          final List<PreparedTask> tasks = new ArrayList<PreparedTask>();
          final List<ContentItem> conflicts = new ArrayList<ContentItem>();
          // Identity
          prepareTasks(context.getIdentityEntry(), context, tasks, conflicts);
          // Layers
          for (final IdentityPatchContext.PatchEntry layer : context.getLayers()) {
              prepareTasks(layer, context, tasks, conflicts);
          }
          // AddOns
          for (final IdentityPatchContext.PatchEntry addOn : context.getAddOns()) {
              prepareTasks(addOn, context, tasks, conflicts);
          }
          // If there were problems report them
          if (!conflicts.isEmpty()) {
              throw PatchLogger.ROOT_LOGGER.conflictsDetected(conflicts);
          }
          // Execute the tasks
          for (final PreparedTask task : tasks) {
              // Unless it's excluded by the user
              final ContentItem item = task.getContentItem();
              if (item != null && context.isExcluded(item)) {
                  continue;
              }
              // Run the task
              task.execute();
          }
          return context.finalize(callback);
      }
docs: Execute all recorded tasks.
  
  @param context  the patch context
  @param callback the finalization callback
  @throws Exception