code: static InstallException create(RepositoryException e, Collection<String> featureNames, boolean installingAsset, RestRepositoryConnectionProxy proxy,
                                     boolean defaultRepo, boolean isOpenLiberty) {
          Throwable cause = e;
          Throwable rootCause = e;
  
          // Check the list of causes of the exception for connection issues
          while ((rootCause = cause.getCause()) != null && cause != rootCause) {
              if (rootCause instanceof UnknownHostException || rootCause instanceof FileNotFoundException || rootCause instanceof ConnectException) {
                  return create(e, rootCause, proxy, defaultRepo);
              }
              cause = rootCause;
          }
  
          if (featureNames != null) {
              if (isCertPathBuilderException(cause))
                  return createByKey(InstallException.CONNECTION_FAILED, e, defaultRepo ? "ERROR_FAILED_TO_CONNECT_CAUSED_BY_CERT" : "ERROR_FAILED_TO_CONNECT_REPOS_CAUSED_BY_CERT");
  
              String featuresListStr = InstallUtils.getFeatureListOutput(featureNames);
              InstallException ie;
              if (isOpenLiberty) {
                  ie = create(Messages.INSTALL_KERNEL_MESSAGES.getLogMessage(installingAsset ? "ERROR_FAILED_TO_RESOLVE_ASSETS" : "ERROR_FAILED_TO_RESOLVE_FEATURES_FOR_OPEN_LIBERTY",
                                                                             featuresListStr),
                              e);
              } else {
                  ie = create(Messages.INSTALL_KERNEL_MESSAGES.getLogMessage(installingAsset ? "ERROR_FAILED_TO_RESOLVE_ASSETS" : "ERROR_FAILED_TO_RESOLVE_FEATURES",
                                                                             featuresListStr),
                              e);
              }
              ie.setData(featuresListStr);
  
              return ie;
  
          } else
              return create(e);
      }
docs: Create an install exception from a repository exception and feature names
  
  @param e
  @param featureNames
  @param installingAsset
  @param proxy
  @param defaultRepo
  @return