fix: marketplace retry not working

This commit is contained in:
hstyi
2025-06-15 11:31:11 +08:00
committed by hstyi
parent ea6b2d6a66
commit 02984bb2a2
2 changed files with 10 additions and 4 deletions

View File

@@ -125,7 +125,7 @@ class MarketplacePanel : JPanel(BorderLayout()), Disposable {
cardLayout.show(cardPanel, PanelState.FetchFailed.name)
}
} finally {
isLoading.set(true)
isLoading.set(false)
}
}
}

View File

@@ -19,6 +19,7 @@ import org.slf4j.LoggerFactory
import org.xml.sax.InputSource
import java.io.StringReader
import java.util.*
import java.util.concurrent.Callable
import java.util.concurrent.Executors
import java.util.concurrent.TimeUnit
import java.util.concurrent.atomic.AtomicBoolean
@@ -97,11 +98,14 @@ internal class MarketplaceManager private constructor() {
val plugins = mutableListOf<MarketplacePlugin>()
val executorService = Executors.newVirtualThreadPerTaskExecutor()
val futures = repositories
.map { url -> executorService.submit<List<MarketplacePlugin>> { getPlugins(url, version) } }
val futures = executorService
.invokeAll(repositories.map { Callable { getPlugins(it, version) } }, 30, TimeUnit.SECONDS)
for (future in futures) {
try {
plugins.addAll(future.get(1, TimeUnit.MINUTES))
if (future.isDone) {
plugins.addAll(future.get())
}
} catch (e: Exception) {
if (log.isWarnEnabled) {
log.warn(e.message, e)
@@ -110,6 +114,8 @@ internal class MarketplaceManager private constructor() {
}
}
executorService.shutdown()
if (plugins.isEmpty()) {
return emptyList()
}