コード例 #1
0
 /**
  * Undo changes for a single patch entry.
  *
  * @param entry the patch entry
  * @param loader the content loader
  */
 static void undoChanges(final PatchEntry entry, final PatchContentLoader loader) {
   final List<ContentModification> modifications =
       new ArrayList<ContentModification>(entry.rollbackActions);
   for (final ContentModification modification : modifications) {
     final ContentItem item = modification.getItem();
     if (item.getContentType() != ContentType.MISC) {
       // Skip modules and bundles they should be removed as part of the {@link FinalizeCallback}
       continue;
     }
     final PatchingTaskDescription description =
         new PatchingTaskDescription(entry.applyPatchId, modification, loader, false, false);
     try {
       final PatchingTask task = PatchingTask.Factory.create(description, entry);
       task.execute(entry);
     } catch (Exception e) {
       PatchLogger.ROOT_LOGGER.warnf(e, "failed to undo change (%s)", modification);
     }
   }
 }