catch (Exception e) { throw new StemModifyException( "unable to set displayExtension: " + e.getMessage(), e );
catch (HibernateException eH) { throw new StemModifyException(msg + eH.getMessage(), eH);
  public void setDisplayExtension(String value)     throws  InsufficientPrivilegeException,            StemModifyException  {    StopWatch sw = new StopWatch();    sw.start();    try {      AttributeValidator.namingValue(value);    }    catch (ModelException eM) {      if (!(this.getStem_name().equals(ROOT_INT) && value.equals(ROOT_EXT))) {        throw new StemModifyException(eM.getMessage(), eM);      }      // Appease Oracle      value = ROOT_INT;    }    if (!RootPrivilegeResolver.canSTEM(this, this.getSession().getSubject())) {      throw new InsufficientPrivilegeException(E.CANNOT_STEM);    }    try {      Set objects = new HashSet();      _initializeChildGroupsAndStems(this);      this.setDisplay_extension(value);      this.setModified();      try {        this.setDisplay_name(          U.constructName(            this.getParentStem().getDisplayName(), value          )        );      }      catch (StemNotFoundException eSNF) {        // I guess we're the root stem        this.setDisplay_name(value);      }      // Now iterate through all child groups and stems (as root),      // renaming each.      GrouperSession  orig  = this.getSession();      this.setSession( orig.getRootSession() );      objects.addAll( this._renameChildren() );      objects.add(this);      HibernateHelper.save(objects);      this.setSession(orig);    }    catch (Exception e) {      throw new StemModifyException(        "unable to set displayExtension: " + e.getMessage(), e      );    }    sw.stop();    // Reset for logging purposes    if (value.equals(ROOT_INT)) {      value = ROOT_EXT;    }    EL.stemSetAttr(this.getSession(), this.getName(), GrouperConfig.ATTR_DE, value, sw);  } // public void setDisplayExtension(value)