code: @Override
      public String[] findMemberGroupKeys(IEntityGroup group) throws GroupsException {
  
          if (isTreeRefreshRequired()) {
              refreshTree();
          }
  
          log.debug("Invoking findMemberGroupKeys() for group:  {}", group.getLocalKey());
  
          List<String> rslt = new ArrayList<>();
          for (Iterator it = findMemberGroups(group); it.hasNext(); ) {
              IEntityGroup g = (IEntityGroup) it.next();
              // Return composite keys here...
              rslt.add(g.getKey());
          }
  
          return rslt.toArray(new String[rslt.size()]);
      }
docs: Returns a <code>String[]</code> containing the keys of <code>IEntityGroups</code> that are
  members of this <code>IEntityGroup</code>. In a composite group system, a group may contain a
  member group from a different service. This is called a foreign membership, and is only
  possible in an internally-managed service. A group store in such a service can return the key
  of a foreign member group, but not the group itself, which can only be returned by its local
  store.
  
  @return String[]
  @param group org.apereo.portal.groups.IEntityGroup