Skip to content

Commit 8970dcf

Browse files
committed
fix race condition
1 parent 7125dbe commit 8970dcf

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ class DefaultAuthCredentialsService(
4545

4646
if (isQConnected(project) && !isQExpired(project)) {
4747
updateTokenFromActiveConnection()
48-
updateConfiguration()
48+
.thenRun {
49+
updateConfiguration()
50+
}
4951
}
5052
}
5153

@@ -78,22 +80,23 @@ class DefaultAuthCredentialsService(
7880
updateTokenFromConnection(newConnection)
7981
}
8082

81-
private fun updateTokenFromActiveConnection() {
83+
private fun updateTokenFromActiveConnection(): CompletableFuture<ResponseMessage> {
8284
val connection = ToolkitConnectionManager.getInstance(project)
8385
.activeConnectionForFeature(QConnection.getInstance())
84-
?: return
86+
?: return CompletableFuture.failedFuture(IllegalStateException("No active Q connection"))
8587

86-
updateTokenFromConnection(connection)
88+
return updateTokenFromConnection(connection)
8789
}
8890

89-
private fun updateTokenFromConnection(connection: ToolkitConnection) {
90-
(connection.getConnectionSettings() as? TokenConnectionSettings)
91+
private fun updateTokenFromConnection(connection: ToolkitConnection): CompletableFuture<ResponseMessage> {
92+
return (connection.getConnectionSettings() as? TokenConnectionSettings)
9193
?.tokenProvider
9294
?.delegate
9395
?.let { it as? BearerTokenProvider }
9496
?.currentToken()
9597
?.accessToken
9698
?.let { token -> updateTokenCredentials(token, true) }
99+
?:CompletableFuture.failedFuture(IllegalStateException("Unable to get token from connection"))
97100
}
98101

99102
override fun invalidate(providerId: String) {

0 commit comments

Comments
 (0)