void () { 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); if (descriptor != null) { node.setDownloadUrl(descriptor.getDownloadUrl()); } } } }