Необъяснимое `kotlinx.coroutines.JobCancellationException: задание было отменено` с сопрограммами kotlin и весенним WebClient? - PullRequest
1 голос
/ 13 октября 2019

У меня есть немного кода, написанного с использованием сопрограмм kotlin

suspend fun getData(request: Request): Response {

        return try {
                webClient.post()
                        .uri(path)
                        .body(BodyInserters.fromObject(request))
                        .retrieve()
                        .awaitExchange()
                        .awaitBody<Response>()
        } catch (e: Exception) {
            logger.error("failed", e)
            throw Exception("failed", e)
        }
    }

Я называю этот бит кода как

 val response = withContext(Dispatchers.IO) {
   client.getData(request)
}

В моих журналах я вижу, что это исключение происходит время от времени довремя kotlinx.coroutines.JobCancellationException: Job was cancelled но это не позволяет мне найти то, что на самом деле пошло не так. Я предполагаю, что одна из приостановившихся функций расширения (awaitExchange или awaitBody) не выполнена, но я не уверен в этом.

...