throw new ModelException(eSNF.getMessage(), eSNF);
throw new ModelException(eSNF);
  private static void _validate(Membership ms)     throws  ModelException  {    GrouperSessionValidator.validate(ms.getSession());    Owner   o = ms.getOwner_id();    Member  m = ms.getMember_id();    Field   f = ms.getField();    // Verify Owner    if (o == null) {      throw new ModelException(ERR_O);    }    if (! ( (o instanceof Group) || (o instanceof Stem) ) ) {      throw new ModelException(ERR_OC + o.getClass().getName());    }    // Verify Member    if (m == null) {      throw new ModelException(ERR_M);    }    // Verify Field    if (!       (             (f.getType().equals(FieldType.ACCESS) )         ||  (f.getType().equals(FieldType.LIST  ) )            ||  (f.getType().equals(FieldType.NAMING) )      )    )    {      throw new ModelException(ERR_FT + f.getType());    }    // Verify that it is not a circular membership    if ( (o instanceof Group) && (f.getName().equals(GrouperConfig.LIST)) ) {      Group g = (Group) o;      try {        if (SubjectHelper.eq(g.toSubject(), m.getSubject())) {          throw new ModelException(ERR_CM);        }      }      catch (SubjectNotFoundException eSNF) {        throw new ModelException(eSNF.getMessage(), eSNF); // FIXME      }    }  } // private static void _validate(ms)