/**
   * Remove an existing role and destroy the corresponding MBean.
   *
   * @param rolename Role name to remove
   */
  public void removeRole(String rolename) {

    UserDatabase database = (UserDatabase) this.resource;
    Role role = database.findRole(rolename);
    if (role == null) {
      return;
    }
    try {
      MBeanUtils.destroyMBean(role);
      database.removeRole(role);
    } catch (Exception e) {
      IllegalArgumentException iae =
          new IllegalArgumentException("Exception destroying role [" + rolename + "] MBean");
      iae.initCause(e);
      throw iae;
    }
  }