Skip to content

Commit 91fd5c5

Browse files
authored
Merge branch 'main' into lang-exp
2 parents 7eaa4b1 + 3357e88 commit 91fd5c5

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type" : "bugfix",
3+
"description" : "Fix infinite loop when workspace indexing server fails to initialize"
4+
}

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,14 @@ class ProjectContextProvider(val project: Project, private val encoderServer: En
116116
logger.info { "project context index starting" }
117117
delay(300)
118118
val isIndexSuccess = index()
119-
if (isIndexSuccess) isIndexComplete.set(true)
119+
if (isIndexSuccess) {
120+
isIndexComplete.set(true)
121+
}
120122
return
121123
}
124+
retryCount.incrementAndGet()
122125
} catch (e: Exception) {
126+
logger.warn(e) { "failed to init project context" }
123127
if (e.stackTraceToString().contains("Connection refused")) {
124128
retryCount.incrementAndGet()
125129
delay(10000)
@@ -133,6 +137,7 @@ class ProjectContextProvider(val project: Project, private val encoderServer: En
133137
private suspend fun initEncryption(): Boolean {
134138
val request = encoderServer.getEncryptionRequest()
135139
val response = sendMsgToLsp(LspMessage.Initialize, request)
140+
logger.info { "received response to init encryption: $response" }
136141
return response?.responseCode == 200
137142
}
138143

@@ -315,12 +320,12 @@ class ProjectContextProvider(val project: Project, private val encoderServer: En
315320
}
316321

317322
private suspend fun sendMsgToLsp(msgType: LspMessage, request: String?): LspResponse? {
318-
logger.info { "sending message: ${msgType.endpoint} to lsp on port ${encoderServer.port}" }
319-
val url = URI("http://127.0.0.1:${encoderServer.port}/${msgType.endpoint}").toURL()
320323
if (!encoderServer.isNodeProcessRunning()) {
321324
logger.warn { "language server for ${project.name} is not running" }
322325
return null
323326
}
327+
logger.info { "sending message: ${msgType.endpoint} to lsp on port ${encoderServer.port}" }
328+
val url = URI("http://127.0.0.1:${encoderServer.port}/${msgType.endpoint}").toURL()
324329
// use 1h as timeout for index, 5 seconds for other APIs
325330
val timeoutMs = if (msgType is LspMessage.Index) 60.minutes.inWholeMilliseconds.toInt() else 5000
326331
// dedicate single thread to index operation because it can be long running

0 commit comments

Comments
 (0)