code: public final void populate(Boolean authenticated,
                                 Set<?> predicates,
                                 Map<String, Set<?>> map,
                                 String errorMessage) {
          String m = m_cacheabbrev + " populate() ";
          logger.debug("{}>", m);
          try {
              if (predicates != null) {
                  logger.warn(m + " predicates are deprecated; will be ignored");
              }
              assertInvalid();
              if (errorMessage != null) {
                  logger.error(m + "errorMessage==" + errorMessage);
                  throw new Exception(errorMessage);
              } else {
                  validate(authenticated, map);
                  // can't set expiration here -- don't have cache reference
                  // can't set pwd here, don't have it
              }
          } catch (Throwable t) {
              logger.error(m + "invalidating to be sure");
              this.invalidate(errorMessage);
          } finally {
              logger.debug("{}<", m);
          }
      }
docs: Populates this cache element with the given authenticated state
  and named values, then puts it in the valid state.
  
  Note: Prior to the call, the element must be in the invalid state.
  TODO: The predicates parameter is deprecated and should be removed.
  For now, callers can avoid a warning by giving it as null.