diff --git a/plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/CodeModernizerSession.kt b/plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/CodeModernizerSession.kt index 973ac136ed5..50ec1a935d5 100644 --- a/plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/CodeModernizerSession.kt +++ b/plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/CodeModernizerSession.kt @@ -61,6 +61,7 @@ import java.net.ConnectException import java.net.SocketTimeoutException import java.net.UnknownHostException import java.nio.file.Path +import java.time.Duration import java.time.Instant import java.util.Base64 import java.util.concurrent.CancellationException @@ -408,8 +409,10 @@ class CodeModernizerSession( UnknownHostException::class, SocketTimeoutException::class, HttpRequests.HttpStatusException::class, - ConnectException::class - ) + ConnectException::class, + IOException::class, + ), + maxDuration = Duration.ofMinutes(5) ) { clientAdaptor.uploadArtifactToS3( createUploadUrlResponse.uploadUrl(), diff --git a/plugins/amazonq/codetransform/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codemodernizer/CodeWhispererCodeModernizerSessionTest.kt b/plugins/amazonq/codetransform/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codemodernizer/CodeWhispererCodeModernizerSessionTest.kt index bf0edb78620..4623edb2ff5 100644 --- a/plugins/amazonq/codetransform/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codemodernizer/CodeWhispererCodeModernizerSessionTest.kt +++ b/plugins/amazonq/codetransform/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codemodernizer/CodeWhispererCodeModernizerSessionTest.kt @@ -67,7 +67,6 @@ import software.aws.toolkits.jetbrains.utils.rules.HeavyJavaCodeInsightTestFixtu import software.aws.toolkits.jetbrains.utils.rules.addFileToModule import java.io.File import java.io.FileInputStream -import java.io.IOException import java.net.ConnectException import java.util.Base64 import java.util.zip.ZipFile @@ -478,13 +477,13 @@ class CodeWhispererCodeModernizerSessionTest : CodeWhispererCodeModernizerTestBa } @Test - fun `CodeModernizer cannot upload payload due to unknown issue`() = runTest { + fun `CodeModernizer cannot upload payload due to unknown client-side issue`() = runTest { doReturn(ZipCreationResult.Succeeded(File("./tst-resources/codemodernizer/test.txt"))) .whenever(testSessionContextSpy).createZipWithModuleFiles(any()) doReturn(exampleCreateUploadUrlResponse).whenever(clientAdaptorSpy).createGumbyUploadUrl(any()) - doAnswer { throw IOException("mock exception") }.whenever(clientAdaptorSpy).uploadArtifactToS3(any(), any(), any(), any(), any()) + doAnswer { throw Exception("mock client-side exception") }.whenever(clientAdaptorSpy).uploadArtifactToS3(any(), any(), any(), any(), any()) val result = testSessionSpy.createModernizationJob(MavenCopyCommandsResult.Success(File("./mock/path/"))) - assertEquals(CodeModernizerStartJobResult.ZipUploadFailed(UploadFailureReason.OTHER("mock exception")), result) + assertEquals(CodeModernizerStartJobResult.ZipUploadFailed(UploadFailureReason.OTHER("mock client-side exception")), result) verify(testSessionStateSpy, times(1)).putJobHistory(any(), eq(TransformationStatus.FAILED), any(), any()) assertEquals(testSessionStateSpy.currentJobStatus, TransformationStatus.FAILED) }