Skip to content

Commit e7c7dbc

Browse files
committed
refactor for consistency
1 parent 8fc2023 commit e7c7dbc

File tree

3 files changed

+21
-21
lines changed

3 files changed

+21
-21
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ class BrowserConnector(
286286
}
287287
CHAT_OPEN_TAB -> {
288288
val response = serializer.deserializeChatMessages<OpenTabResponse>(node)
289-
chatCommunicationManager.completeTabOpen(
289+
ChatCommunicationManager.completeTabOpen(
290290
response.requestId,
291291
response.params.result.tabId
292292
)

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.customization.Code
3838
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
3939
import java.util.UUID
4040
import java.util.concurrent.CompletableFuture
41+
import java.util.concurrent.TimeUnit
4142

4243
/**
4344
* Concrete implementation of [AmazonQLanguageClient] to handle messages sent from server
@@ -116,7 +117,8 @@ class AmazonQLanguageClientImpl(private val project: Project) : AmazonQLanguageC
116117

117118
override fun openTab(params: OpenTabParams): CompletableFuture<OpenTabResult> {
118119
val requestId = UUID.randomUUID().toString()
119-
val result = ChatCommunicationManager.getInstance(project).addPendingOpenTabRequest(requestId)
120+
val result = CompletableFuture<OpenTabResult>()
121+
ChatCommunicationManager.pendingTabRequests[requestId] = result
120122

121123
val uiMessage = """
122124
{
@@ -127,6 +129,11 @@ class AmazonQLanguageClientImpl(private val project: Project) : AmazonQLanguageC
127129
""".trimIndent()
128130
AsyncChatUiListener.notifyPartialMessageUpdate(uiMessage)
129131

132+
result.orTimeout(30000, TimeUnit.MILLISECONDS)
133+
.whenComplete { _, error ->
134+
ChatCommunicationManager.pendingTabRequests.remove(requestId)
135+
}
136+
130137
return result
131138
}
132139

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/flareChat/ChatCommunicationManager.kt

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,10 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SEND_
1414
import java.util.UUID
1515
import java.util.concurrent.CompletableFuture
1616
import java.util.concurrent.ConcurrentHashMap
17-
import java.util.concurrent.TimeUnit
1817

1918
@Service(Service.Level.PROJECT)
2019
class ChatCommunicationManager {
2120
private val chatPartialResultMap = ConcurrentHashMap<String, String>()
22-
private val pendingTabRequests = ConcurrentHashMap<String, CompletableFuture<OpenTabResult>>()
23-
24-
fun addPendingOpenTabRequest(requestId: String): CompletableFuture<OpenTabResult> {
25-
return CompletableFuture<OpenTabResult>().also { future ->
26-
pendingTabRequests[requestId] = future
27-
future.orTimeout(30000, TimeUnit.MILLISECONDS)
28-
.whenComplete { _, error ->
29-
if (error != null) {
30-
pendingTabRequests.remove(requestId)
31-
}
32-
}
33-
}
34-
}
35-
3621
private fun getPartialChatMessage(partialResultToken: String): String =
3722
chatPartialResultMap.getValue(partialResultToken)
3823

@@ -71,10 +56,6 @@ class ChatCommunicationManager {
7156
}
7257
}
7358

74-
fun completeTabOpen(requestId: String, tabId: String) {
75-
pendingTabRequests.remove(requestId)?.complete(OpenTabResult(tabId))
76-
}
77-
7859
companion object {
7960
fun getInstance(project: Project) = project.service<ChatCommunicationManager>()
8061

@@ -87,5 +68,17 @@ class ChatCommunicationManager {
8768
"isPartialResult": $isPartialResult
8869
}
8970
""".trimIndent()
71+
72+
val pendingTabRequests = ConcurrentHashMap<String, CompletableFuture<OpenTabResult>>()
73+
74+
fun addPendingOpenTabRequest(requestId: String): CompletableFuture<OpenTabResult> {
75+
return CompletableFuture<OpenTabResult>().also { future ->
76+
pendingTabRequests[requestId] = future
77+
}
78+
}
79+
80+
fun completeTabOpen(requestId: String, tabId: String) {
81+
pendingTabRequests.remove(requestId)?.complete(OpenTabResult(tabId))
82+
}
9083
}
9184
}

0 commit comments

Comments
 (0)