Skip to content

Commit 825f8f2

Browse files
dhasani23David Hasani
and
David Hasani
authored
fix(amazonq): add retry on IOException (#5246)
* fix(amazonq): add retry on IOException * fix test * update test * update test * fix detekt --------- Co-authored-by: David Hasani <davhasan@amazon.com>
1 parent b02e022 commit 825f8f2

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/CodeModernizerSession.kt

+5-2
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ import java.net.ConnectException
6161
import java.net.SocketTimeoutException
6262
import java.net.UnknownHostException
6363
import java.nio.file.Path
64+
import java.time.Duration
6465
import java.time.Instant
6566
import java.util.Base64
6667
import java.util.concurrent.CancellationException
@@ -408,8 +409,10 @@ class CodeModernizerSession(
408409
UnknownHostException::class,
409410
SocketTimeoutException::class,
410411
HttpRequests.HttpStatusException::class,
411-
ConnectException::class
412-
)
412+
ConnectException::class,
413+
IOException::class,
414+
),
415+
maxDuration = Duration.ofMinutes(5)
413416
) {
414417
clientAdaptor.uploadArtifactToS3(
415418
createUploadUrlResponse.uploadUrl(),

plugins/amazonq/codetransform/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codemodernizer/CodeWhispererCodeModernizerSessionTest.kt

+3-4
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ import software.aws.toolkits.jetbrains.utils.rules.HeavyJavaCodeInsightTestFixtu
6767
import software.aws.toolkits.jetbrains.utils.rules.addFileToModule
6868
import java.io.File
6969
import java.io.FileInputStream
70-
import java.io.IOException
7170
import java.net.ConnectException
7271
import java.util.Base64
7372
import java.util.zip.ZipFile
@@ -478,13 +477,13 @@ class CodeWhispererCodeModernizerSessionTest : CodeWhispererCodeModernizerTestBa
478477
}
479478

480479
@Test
481-
fun `CodeModernizer cannot upload payload due to unknown issue`() = runTest {
480+
fun `CodeModernizer cannot upload payload due to unknown client-side issue`() = runTest {
482481
doReturn(ZipCreationResult.Succeeded(File("./tst-resources/codemodernizer/test.txt")))
483482
.whenever(testSessionContextSpy).createZipWithModuleFiles(any())
484483
doReturn(exampleCreateUploadUrlResponse).whenever(clientAdaptorSpy).createGumbyUploadUrl(any())
485-
doAnswer { throw IOException("mock exception") }.whenever(clientAdaptorSpy).uploadArtifactToS3(any(), any(), any(), any(), any())
484+
doAnswer { throw Exception("mock client-side exception") }.whenever(clientAdaptorSpy).uploadArtifactToS3(any(), any(), any(), any(), any())
486485
val result = testSessionSpy.createModernizationJob(MavenCopyCommandsResult.Success(File("./mock/path/")))
487-
assertEquals(CodeModernizerStartJobResult.ZipUploadFailed(UploadFailureReason.OTHER("mock exception")), result)
486+
assertEquals(CodeModernizerStartJobResult.ZipUploadFailed(UploadFailureReason.OTHER("mock client-side exception")), result)
488487
verify(testSessionStateSpy, times(1)).putJobHistory(any(), eq(TransformationStatus.FAILED), any(), any())
489488
assertEquals(testSessionStateSpy.currentJobStatus, TransformationStatus.FAILED)
490489
}

0 commit comments

Comments
 (0)