if (!gl.group().type().equals("naming")) {  GrouperMember m = ( (GrouperGroup) gl.group() ).toMember();
  public List memberOf(GrouperList gl) {    List vals = new ArrayList();    List effs = new ArrayList(); // TODO What am I trying to accomplish?    // Ensure that the grouper list is properly loaded    gl.setSession(this.s);  // TODO Is this needed here?    log.debug("memberOf calculation for " + gl);    // Add m to g's gl    vals.add(gl);    log.debug("mship: " + gl);    List isMem = new ArrayList();    // TODO *sigh* Fix.  Please?  Maybe just watch for thrown    //      exceptions?    if (!gl.group().type().equals("naming")) {      // Where (across all list values in the registry) is g a member?      GrouperMember m = ( (GrouperGroup) gl.group() ).toMember();      if (gl.groupField().equals(Grouper.DEF_LIST_TYPE)) {        /*          * If we are adding to a "members" list, we'll want to find         * _all_ list types where _gl.group()_ is a member in order to         * add _m_ to those lists.         */        isMem = m.listValsAll();      } else {        /*         * Otherwise, if we are adding to a non-"members" list, we are         * only concerned the content's of _m_'s "members" list.         */        isMem = m.listVals();      }      // Add m to groups where g is a member      effs.addAll( this._addWhereIsMem(gl, gl, isMem) );    }    // If m is a group...    if (gl.member().typeID().equals("group")) {      // ...add additional list values      effs.addAll( this._addHasMembers(gl, isMem) );    }    // Save the chains    vals.addAll( this._saveChains(effs) );    log.debug("vals: " + vals.size());    return vals;  }