private void updateUrls() {
    boolean unknownNodes = false;
    for (PluginNode node : myPluginsToInstall) {
      if (Strings.areSameInstance(node.getRepositoryName(), PluginInstaller.UNKNOWN_HOST_MARKER)) {
        unknownNodes = true;
        break;
      }
    }
    if (!unknownNodes) return;

    List<String> hosts = RepositoryHelper.getPluginHosts();
    Map<PluginId, PluginNode> allPlugins = new HashMap<>();
    for (String host : hosts) {
      if (host != null) {
        try {
          for (PluginNode descriptor : RepositoryHelper.loadPlugins(host, null, myIndicator)) {
            allPlugins.put(descriptor.getPluginId(), descriptor);
          }
        }
        catch (IOException ignored) {
        }
      }
    }

    for (PluginNode node : myPluginsToInstall) {
      if (Strings.areSameInstance(node.getRepositoryName(), PluginInstaller.UNKNOWN_HOST_MARKER)) {
        PluginNode descriptor = allPlugins.get(node.getPluginId());
        node.setRepositoryName(descriptor != null ? descriptor.getRepositoryName() : null);
        String oldUrl = node.getDownloadUrl();
        if (descriptor != null) {
          node.setDownloadUrl(descriptor.getDownloadUrl());
        }
        LOG.info("updateUrls for node: " +
                 node.getPluginId() + " | " + node.getVersion() + " | " + oldUrl +
                 " to: " + node.getRepositoryName() + " | " + node.getDownloadUrl());
      }
    }
  }
private void updateUrls()