GrouperLog.debug(LOG, this.getSession(), msg + " revoking access privs");
  public void delete()     throws  GroupDeleteException,            InsufficientPrivilegeException  {    // TODO Refactor into smaller components    StopWatch sw = new StopWatch();    sw.start();    GrouperSession.validate(this.getSession());    String msg = "delete";    GrouperLog.debug(LOG, this.getSession(), msg);    try {      PrivilegeResolver.getInstance().canADMIN(this.getSession(), this, this.getSession().getSubject());      GrouperLog.debug(LOG, this.getSession(), msg + " canADMIN");    }    catch (InsufficientPrivilegeException eIP) {      String err = msg + " cannot ADMIN: " + eIP.getMessage();      GrouperLog.debug(LOG, this.getSession(), err);      throw new InsufficientPrivilegeException(err, eIP);    }     try {      Set deletes = new LinkedHashSet();      msg += " '" + this.getName() + "'";      GrouperLog.debug(LOG, this.getSession(), msg);      // And revoke all access privileges      GrouperLog.debug(LOG, this.getSession(), msg + " revoking access privs");      this._revokeAllAccessPrivs(msg);      GrouperLog.debug(LOG, this.getSession(), msg + " access privs revoked");      // And delete all memberships - as root      GrouperLog.debug(        LOG, this.getSession(), msg + " finding memberships to delete"      );      deletes.addAll(         Membership.deleteAllFieldType(          GrouperSessionFinder.getRootSession(), this, FieldType.LIST        )      );      GrouperLog.debug(        LOG, this.getSession(), msg + " total membership to delete: " + deletes.size()      );      // Add the group last for good luck          deletes.add(this);      // Preserve name for logging      String name = this.getName();      // And then commit changes to registry      HibernateHelper.delete(deletes);      // TODO info      sw.stop();      EL.groupDelete(this.getSession(), name, sw);    }    catch (InsufficientPrivilegeException eIP) {      LOG.debug(ERR_DG + eIP.getMessage());      throw new InsufficientPrivilegeException(eIP.getMessage(), eIP);    }    catch (Exception e) {      LOG.debug(ERR_DG + e.getMessage());      throw new GroupDeleteException(e.getMessage(), e);    }  } // public void delete()