result = (PrivilegeCacheElement) this.cache.get(o, p, subj);
result = (PrivilegeCacheElement) this.getCache().get(o, p, subj);
  public PrivilegeCacheElement get(Owner o, Subject subj, Privilege p) {    // I'm not sure the logic is entirely correct within here but it does a    // better job of tracking changes to the wheel group so...    PrivilegeCacheElement result = new NullPrivilegeCacheElement(o, subj, p);    if (this.cache.containsKey(o, p, subj)) {       // The privilege is cached but...      // Is the wheel group enabled?      boolean useCached = true;      if (Boolean.valueOf(GrouperConfig.getProperty(GrouperConfig.GWU))) {        try {          // Does the wheel group exist?          Group wheel = GroupFinder.findByName(            o.getSession().getRootSession(),             GrouperConfig.getProperty(GrouperConfig.GWG)          );          // If the wheel group has been modified since the last time the cache          // was updated then do not return the cached result.  Instead, let the          // privilege resolution code resolve the privilege.          if (wheel.getModifyTime().getTime() > lastModified) {            useCached = false;            }          // Otherwise return nothing and let the privilege resolution code          // figure it out.        }        catch (GroupNotFoundException eGNF) {          // Ignore        }      }      if (useCached) {        result = (PrivilegeCacheElement) this.cache.get(o, p, subj);      }    }    return result;  } // public PrivilegeCacheElement get(o, subj, p)