code: public void addUnderlyingPermission(String permissionName, ManagementPermission underlyingPermission) {
          assert underlyingPermission.getActionEffect() == getActionEffect() : "incompatible ActionEffect";
          if (combinationPolicy == CombinationPolicy.REJECTING && underlyingPermissions.size() > 0) {
              throw ControllerLogger.ROOT_LOGGER.illegalMultipleRoles();
          }
          underlyingPermissions.put(permissionName, underlyingPermission);
      }
docs: Adds a permission.
  <p>
  This method should not be called after the instance has been made visible to another thread
  than the one that constructed it.
  </p>
  @param permissionName name of the permission to add. Cannot be {@code null}
  @param underlyingPermission the permission. Cannot be {@code null}