ms.getOwner_id(), ms.getMember_id(),
ms.getOwner_id(), ms.getMember().getId(),
  private Set _membershipsToDelete(Group g, Subject subj, Field f)     throws  MemberDeleteException  {    Set     memberships = new LinkedHashSet();    String  msg         = "membership delete calculation for  " +       SubjectHelper.getPretty(subj) + " '" + f.getName() + "'";    GrouperLog.debug(LOG, g.s, msg);    try {      Member m = MemberFinder.findBySubject(this.s, subj);      // Find the immediate membership that is to be deleted      Membership imm = MembershipFinder.findImmediateMembership(this.s, g, subj, f);      memberships.add(imm);      // Find effective memberships      // As many of the memberships 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  iter  = MemberOf.doMemberOf(this.s, g, m, f).iterator();      while (iter.hasNext()) {        Membership ms = (Membership) iter.next();        memberships.add(           MembershipFinder.findEffectiveMembership(            ms.getOwner_id(), ms.getMember_id(),             ms.getList(), ms.getVia_id(), ms.getDepth()          )        );      }      hs.close();    }    catch (GroupNotFoundException eGNF) {      throw new MemberDeleteException(eGNF.getMessage());    }    catch (HibernateException eH) {      throw new MemberDeleteException(eH.getMessage());    }    catch (MemberNotFoundException eMNF) {      throw new MemberDeleteException(eMNF.getMessage());    }    catch (MembershipNotFoundException eMSNF) {      throw new MemberDeleteException(eMSNF.getMessage());    }    GrouperLog.debug(LOG, g.s, msg + ": " + memberships.size());    return memberships;  } // private Set _membershipsToDelete(g, subj, f)