System.err.println(e); System.exit(1);
throw new RuntimeException(e);
  protected static boolean listDelVal(GrouperSession s, GrouperGroup g, GrouperMember m, String list) {    Session session = GrouperBackend._init();    boolean rv      = false;    // FIXME Better validation efforts, please.    // TODO  Refactor to a method    if (        g.getClass().getName().equals("edu.internet2.middleware.grouper.GrouperGroup")   &&        s.getClass().getName().equals("edu.internet2.middleware.grouper.GrouperSession") &&        m.getClass().getName().equals("edu.internet2.middleware.grouper.GrouperMember")  &&        Grouper.groupField(g.type(), list)       )     {      try {        Transaction t = session.beginTransaction();        // Update immediate list data for `m' first        GrouperBackend._listDelVal(session, g, m, list, null);        // TODO Refactor to a method        /*          * Find where `m' is a member via `g' and remove those         * effective memberships.         */        Iterator iterViaG = GBQuery.grouperList(                              session, GrouperBackend.VAL_NOTNULL,                              m.key(), list, g.key()                            ).iterator();        List groups = new ArrayList();        while (iterViaG.hasNext()) {          GrouperList   gl  = (GrouperList) iterViaG.next();          GrouperGroup  grp = gl.group();          GrouperMember mem = gl.member();          if ( (grp != null) && (mem != null) ) {            GrouperBackend._listDelVal(session, grp, mem, list, g);            groups.add(grp);          }        }        // TODO Refactor to a method        /*        * If `m' is a group, convert it from a member to a group	      * object.  Then, query to find its list members and then delete	      * those members to all groups where `m' is a member.        */        if (m.typeID().equals("group")) {          groups.add(g);          GrouperGroup gm = GrouperBackend._groupLoadByID(m.subjectID());          // Find all members of `m'          Iterator mems   = GrouperBackend.listVals(s, gm, list).iterator();          while (mems.hasNext()) {            GrouperList gl = (GrouperList) mems.next();            // If we have a via, use that, otherwise use `m'             GrouperGroup v = gl.via();            if (v == null) {              v = gm;            }            /*             * Delete all members of `m' from all groups that `m' and `g'             * belong to             */            Iterator iter = groups.iterator();            while (iter.hasNext()) {              GrouperGroup group = (GrouperGroup) iter.next();              GrouperBackend._listDelVal(                session, group, gl.member(), list, v              );            }          }        }        // Update modify information        session.update(g);        // Commit it        t.commit();        rv = true;      } catch (HibernateException e) {        System.err.println(e);        System.exit(1);      }    }     GrouperBackend._hibernateSessionClose(session);    return rv;  }