code: private Collection<CmsContentNotification> filterConfirmedResources(
          Collection<CmsContentNotification> contentNotifications) {
  
          Iterator<CmsContentNotification> notifications = contentNotifications.iterator();
          while (notifications.hasNext()) {
              CmsContentNotification contentNotification = notifications.next();
              CmsUser responsible = contentNotification.getResponsible();
              // check, if user was already notified
              List<?> confirmedResourcesList = (List<?>)responsible.getAdditionalInfo(
                  CmsUserSettings.ADDITIONAL_INFO_CONFIRMED_RESOURCES);
              if (confirmedResourcesList == null) {
                  confirmedResourcesList = new ArrayList<Object>();
                  responsible.setAdditionalInfo(
                      CmsUserSettings.ADDITIONAL_INFO_CONFIRMED_RESOURCES,
                      new ArrayList<Object>());
              }
  
              List<CmsExtendedNotificationCause> notificationCandidates = contentNotification.getNotificationCauses();
  
              List<CmsExtendedNotificationCause> notificationResources = new ArrayList<CmsExtendedNotificationCause>(
                  notificationCandidates);
              // remove already confirmed resources
              Iterator<?> i = confirmedResourcesList.iterator();
              while (i.hasNext()) {
                  Object o = i.next();
                  if (notificationResources.contains(o)) {
                      notificationResources.remove(o);
                  }
              }
              // filter confirmed resources
              i = new ArrayList<Object>(confirmedResourcesList).iterator();
              while (i.hasNext()) {
                  Object o = i.next();
                  if (!notificationCandidates.contains(o)) {
                      confirmedResourcesList.remove(o);
                  }
              }
  
              if (notificationResources.isEmpty()) {
                  // Remove notification, if resource list is empty
                  contentNotifications.remove(contentNotification);
              } else {
                  contentNotification.setNotificationCauses(notificationResources);
              }
              try {
                  m_cms.writeUser(responsible);
              } catch (CmsException e) {
                  LOG.error(e.getLocalizedMessage(), e);
              }
          }
          return contentNotifications;
      }
docs: Updates the resources that were confirmed by the user. That means deletes the resources that need not a
  notification any more.
  removes all resources which do not occur in the candidate list.<p>
  
  @param contentNotifications the list of {@link CmsContentNotification} objects to remove from the set of confirmed resources
  @return a new CmsConfirmedResources Object which all the resource removed