code: @FFDCIgnore({ AttributeValidationException.class, ConfigUpdateException.class, ConfigEvaluatorException.class })
      private Collection<ConfigurationInfo> update(Collection<ConfigurationInfo> updatedConfigurations, boolean failOnError, boolean encourageUpdates) throws ConfigUpdateException {
          Collection<ConfigurationInfo> retVal = new ArrayList<ConfigurationInfo>();
          for (ConfigurationInfo info : updatedConfigurations) {
              try {
                  updateConfiguration(info, retVal, encourageUpdates);
              } catch (ConfigUpdateException e) {
                  String nodeName = getNodeNameForExceptions(info.configElement);
  
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "update(). Exception while trying to update " + nodeName + " configuration on disk. Exception message = " + e.getMessage());
                  }
  
                  if (failOnError) {
                      throw e;
                  } else {
                      Tr.error(tc, "error.config.update.exception", new Object[] { nodeName, e.getMessage(), info.configElement.getId() });
                      warnIfOldConfigExists(info, nodeName);
                  }
              } catch (AttributeValidationException e) {
                  String nodeName = getNodeNameForExceptions(info.configElement);
                  if (failOnError) {
                      throw new ConfigUpdateException(e);
                  } else {
                      Tr.error(tc, "error.attribute.validation.exception",
                               new Object[] { nodeName, e.getAttributeDefintion().getID(), e.getValue(), e.getMessage() });
                      warnIfOldConfigExists(info, nodeName);
                  }
              } catch (ConfigEvaluatorException e) {
                  String nodeName = getNodeNameForExceptions(info.configElement);
                  if (failOnError) {
                      throw new ConfigUpdateException(e);
                  } else {
                      Tr.error(tc, "error.config.update.exception", new Object[] { nodeName, e.getMessage(), info.configElement.getId() });
                      warnIfOldConfigExists(info, nodeName);
                  }
              }
          }
          if (!ranUpdateRetry) {
              retryFailedUpdate(failOnError);
          }
          ranUpdateRetry = false;
          return retVal;
  
      }
docs: @param encourageUpdates TODO
  @return
  @throws ConfigUpdateException