catch (Exception e) { throw new GroupModifyException(e.getMessage(), e); }
  public void setAttribute(String attr, String value)     throws  AttributeNotFoundException,             GroupModifyException,             InsufficientPrivilegeException  {    // TODO s,AttributeNotFoundException,SchemaException,    try {      StopWatch sw = new StopWatch();      sw.start();      Field f = FieldFinder.find(attr);      GroupValidator.canSetAttribute(this, f, value);      // TODO I'm not comfortable with this code      Set       attrs = new LinkedHashSet();      boolean   found = false; // So we know if we are adding or updating      Attribute a;      Iterator  iter  = this.getGroup_attributes().iterator();      while (iter.hasNext()) {        a = (Attribute) iter.next();        if (a.getField().equals(f)) {          a.setValue(value); // updating          found = true;        }        attrs.add(a);      }      if (found == false) {        attrs.add(new Attribute(this, f, value)); // adding       }      this.setGroup_attributes( this._updateSystemAttrs(f, value, attrs) );      this.setModified();      HibernateHelper.save(this);      sw.stop();      EL.groupSetAttr(this.getSession(), this.getName(), attr, value, sw);    }    catch (SchemaException eS) {      throw new AttributeNotFoundException(eS.getMessage(), eS);    }    catch (Exception e) {      throw new GroupModifyException(e.getMessage(), e);    }  } // public void setAttribute(attr, value)