Skip to content

Commit 87643f7

Browse files
authored
fix(amazonq): do not call didChangeDependencyPaths on EDT (#5714)
1 parent 578a62e commit 87643f7

File tree

3 files changed

+11
-14
lines changed

3 files changed

+11
-14
lines changed

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesService.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import com.intellij.openapi.roots.ModuleRootListener
1111
import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLspService
1212
import software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies.ModuleDependencyProvider.Companion.EP_NAME
1313
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams
14-
import java.util.concurrent.CompletableFuture
14+
import software.aws.toolkits.jetbrains.utils.pluginAwareExecuteOnPooledThread
1515

1616
class DefaultModuleDependenciesService(
1717
private val project: Project,
@@ -34,10 +34,13 @@ class DefaultModuleDependenciesService(
3434
syncAllModules()
3535
}
3636

37-
override fun didChangeDependencyPaths(params: DidChangeDependencyPathsParams): CompletableFuture<Unit> =
37+
override fun didChangeDependencyPaths(params: DidChangeDependencyPathsParams) {
3838
AmazonQLspService.executeIfRunning(project) { languageServer ->
39-
languageServer.didChangeDependencyPaths(params)
40-
}?.toCompletableFuture() ?: CompletableFuture.failedFuture(IllegalStateException("LSP Server not running"))
39+
pluginAwareExecuteOnPooledThread {
40+
languageServer.didChangeDependencyPaths(params)
41+
}
42+
}
43+
}
4144

4245
private fun syncAllModules() {
4346
ModuleManager.getInstance(project).modules.forEach { module ->

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependenciesService.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
package software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies
55

66
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams
7-
import java.util.concurrent.CompletableFuture
87

98
interface ModuleDependenciesService {
10-
fun didChangeDependencyPaths(params: DidChangeDependencyPathsParams): CompletableFuture<Unit>
9+
fun didChangeDependencyPaths(params: DidChangeDependencyPathsParams)
1110
}

plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesServiceTest.kt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@
33
package software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies
44

55
import com.intellij.openapi.Disposable
6-
import com.intellij.openapi.application.Application
7-
import com.intellij.openapi.application.ApplicationManager
86
import com.intellij.openapi.components.serviceIfCreated
97
import com.intellij.openapi.extensions.ExtensionPointName
108
import com.intellij.openapi.module.Module
119
import com.intellij.openapi.module.ModuleManager
1210
import com.intellij.openapi.project.Project
1311
import com.intellij.openapi.roots.ModuleRootEvent
12+
import com.intellij.testFramework.ApplicationExtension
1413
import com.intellij.util.messages.MessageBus
1514
import com.intellij.util.messages.MessageBusConnection
1615
import io.mockk.every
@@ -23,19 +22,20 @@ import io.mockk.verify
2322
import org.eclipse.lsp4j.jsonrpc.messages.ResponseMessage
2423
import org.junit.jupiter.api.BeforeEach
2524
import org.junit.jupiter.api.Test
25+
import org.junit.jupiter.api.extension.ExtendWith
2626
import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLanguageServer
2727
import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLspService
2828
import software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies.ModuleDependencyProvider.Companion.EP_NAME
2929
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams
3030
import java.util.concurrent.CompletableFuture
3131
import java.util.function.Consumer
3232

33+
@ExtendWith(ApplicationExtension::class)
3334
class DefaultModuleDependenciesServiceTest {
3435
private lateinit var project: Project
3536
private lateinit var mockLanguageServer: AmazonQLanguageServer
3637
private lateinit var mockModuleManager: ModuleManager
3738
private lateinit var sut: DefaultModuleDependenciesService
38-
private lateinit var mockApplication: Application
3939
private lateinit var mockDependencyProvider: ModuleDependencyProvider
4040

4141
@BeforeEach
@@ -47,11 +47,6 @@ class DefaultModuleDependenciesServiceTest {
4747

4848
every { mockLanguageServer.didChangeDependencyPaths(any()) } returns CompletableFuture<Unit>()
4949

50-
// Mock Application
51-
mockApplication = mockk()
52-
mockkStatic(ApplicationManager::class)
53-
every { ApplicationManager.getApplication() } returns mockApplication
54-
5550
// Mock message bus
5651
val messageBus = mockk<MessageBus>()
5752
every { project.messageBus } returns messageBus

0 commit comments

Comments
 (0)