code: protected String throwConvertedInvocationException(Throwable cause) throws RunException, InternalException {
          if (cause instanceof SPIResolutionException) {
              SPIResolutionException spire = (SPIResolutionException) cause;
              throw new ResolutionException(spire.id(), spire.getStackTrace());
          } else {
              throw new UserException(cause.getMessage(), cause.getClass().getName(), cause.getStackTrace());
          }
      }
docs: Converts incoming exceptions in user code into instances of subtypes of
  {@link ExecutionControl.ExecutionControlException} and throws the
  converted exception.
  
  @param cause the exception to convert
  @return never returns as it always throws
  @throws ExecutionControl.RunException for normal exception occurrences
  @throws ExecutionControl.InternalException for internal problems