Skip to content

Commit a61b0c9

Browse files
authored
Merge pull request #300 from reown-com/develop
BOM_1.6.6
2 parents f30d114 + fc5d265 commit a61b0c9

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

build.gradle.kts

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,11 @@ tasks.register("dropStagingRepositories") {
187187

188188
data class StagingRepository(val key: String, val state: String, val portalDeploymentId: String?)
189189

190-
fun createHttpClient(): CloseableHttpClient = HttpClients.custom()
190+
fun createHttpClient(socketTimeoutMs: Int = 60000): CloseableHttpClient = HttpClients.custom()
191191
.setDefaultRequestConfig(
192192
RequestConfig.custom()
193193
.setConnectTimeout(30000)
194-
.setSocketTimeout(60000)
194+
.setSocketTimeout(socketTimeoutMs)
195195
.build()
196196
)
197197
.build()
@@ -231,10 +231,19 @@ fun parseRepositoriesResponse(jsonResponse: String): List<StagingRepository> {
231231

232232
fun uploadRepositoriesToPortal(repositories: List<StagingRepository>) {
233233
println("Starting upload of ${repositories.size} repositories to Central Portal...")
234+
val failedRepos = mutableListOf<String>()
234235
repositories.forEachIndexed { index, repo ->
235236
println("Uploading repository ${index + 1}/${repositories.size}: ${repo.key}")
236-
uploadRepositoryToPortal(repo.key)
237-
println("Completed upload of repository ${index + 1}/${repositories.size}: ${repo.key}")
237+
try {
238+
uploadRepositoryToPortal(repo.key)
239+
println("Completed upload of repository ${index + 1}/${repositories.size}: ${repo.key}")
240+
} catch (e: Exception) {
241+
println("Failed to upload repository ${index + 1}/${repositories.size}: ${repo.key} - ${e.message}")
242+
failedRepos.add(repo.key)
243+
}
244+
}
245+
if (failedRepos.isNotEmpty()) {
246+
throw RuntimeException("Failed to upload ${failedRepos.size}/${repositories.size} repositories: $failedRepos")
238247
}
239248
println("Completed upload of all ${repositories.size} repositories to Central Portal")
240249
}
@@ -245,8 +254,9 @@ fun uploadRepositoryToPortal(repositoryKey: String, maxRetries: Int = 3) {
245254
println("Upload URL: $uploadUrl")
246255

247256
var lastException: Exception? = null
257+
var hadTimeout = false
248258
repeat(maxRetries) { attempt ->
249-
createHttpClient().use { client ->
259+
createHttpClient(socketTimeoutMs = 180_000).use { client ->
250260
try {
251261
val httpPost = HttpPost(uploadUrl).apply {
252262
setHeader("Authorization", authHeader())
@@ -260,16 +270,22 @@ fun uploadRepositoryToPortal(repositoryKey: String, maxRetries: Int = 3) {
260270
println("Received response with status: $statusCode")
261271

262272
val responseBody = EntityUtils.toString(response.entity)
263-
println("Response body length: ${responseBody.length}")
273+
println("Response body: $responseBody")
264274

265275
if (statusCode == 200 || statusCode == 201) {
266276
println("Successfully uploaded repository $repositoryKey to Central Portal")
267-
println("Response: $responseBody")
277+
return
278+
} else if (statusCode == 400 && hadTimeout) {
279+
println("Got 400 after a previous timeout for $repositoryKey — the timed-out request likely succeeded. Treating as success.")
268280
return
269281
} else {
270282
lastException = RuntimeException("HTTP $statusCode - $responseBody")
271283
println("Upload attempt ${attempt + 1}/$maxRetries failed for $repositoryKey: HTTP $statusCode")
272284
}
285+
} catch (e: java.net.SocketTimeoutException) {
286+
hadTimeout = true
287+
lastException = e
288+
println("Upload attempt ${attempt + 1}/$maxRetries timed out for $repositoryKey: ${e.message}")
273289
} catch (e: Exception) {
274290
lastException = e
275291
println("Upload attempt ${attempt + 1}/$maxRetries failed for $repositoryKey: ${e.message}")

0 commit comments

Comments
 (0)