ms.getOwner_id(), ms.getMember_id(),
ms.getOwner_id(), ms.getMember().getId(),
  public void revokePriv(GrouperSession s, Group g, Privilege priv)    throws  InsufficientPrivilegeException,             RevokePrivilegeException   {    GrouperSession.validate(s);    try {      // The objects that will need updating and deleting      Set     saves   = new LinkedHashSet();      Set     deletes = new LinkedHashSet();      Field   f       = this._getField(priv);      // Update stem modify time      g.setModified();      saves.add(g);      // Find every subject that needs to have the priv revoked      Iterator iter = MembershipFinder.findImmediateSubjects(        s, g.getUuid(), f      ).iterator();      while (iter.hasNext()) {        Subject subj  = (Subject) iter.next();        Member  m     = MemberFinder.findBySubject(s, subj);        // This is the immediate privilege that needs to be deleted        deletes.add(          MembershipFinder.findImmediateMembership(            s, g.getUuid(), m, this._getField(priv)          )        );        // As many of the privileges are likely to be transient, we        // need to retrieve the persistent version of each before        // passing it along to be deleted by HibernateHelper.          Session   hs    = HibernateHelper.getSession();        Iterator  iterM = MemberOf.doMemberOf(s, g, m, f).iterator();        while (iterM.hasNext()) {          Membership ms = (Membership) iterM.next();          deletes.add(             MembershipFinder.findEffectiveMembership(              ms.getOwner_id(), ms.getMember_id(),               ms.getList(), ms.getVia_id(), ms.getDepth()            )          );        }        hs.close();      }      // And then update the registry      HibernateHelper.saveAndDelete(saves, deletes);    }    catch (GroupNotFoundException eGNF) {      throw new RevokePrivilegeException(ERR_RP + eGNF.getMessage());    }    catch (HibernateException eH) {      throw new RevokePrivilegeException(ERR_RP + eH.getMessage());    }    catch (MemberNotFoundException eMNF) {      throw new RevokePrivilegeException(ERR_RP + eMNF.getMessage());    }    catch (MembershipNotFoundException eMSNF) {      throw new RevokePrivilegeException(ERR_RP + eMSNF.getMessage());    }    catch (SchemaException eS) {      throw new RevokePrivilegeException(ERR_RP + eS.getMessage());    }  } // public void revokePriv(s, g, priv)