UnsupportedOperationException при построении проекта Kotlin в Idea

Когда я пытаюсь построить свой проект Kotlin, я получаю следующую ошибку в Idea:

Error:Kotlin: [Internal Error] org.jetbrains.kotlin.util.KotlinFrontEndException: Exception while analyzing expression at (60,19) in E:/altruix-is/src/main/kotlin/com/mycompany/myproduct/capsulecrm/CapsuleCrmSubsystem.kt: client.execute(req) [...] Caused by: java.lang.UnsupportedOperationException: doSubstitute with no original should not be called for synthetic extension at org.jetbrains.kotlin.synthetic.SamAdapterFunctionsScope$MyFunctionDescriptor.doSubstitute(SamAdapterFunctionsScope.kt:165) at org.jetbrains.kotlin.descriptors.impl.FunctionDescriptorImpl$CopyConfiguration.build(FunctionDescriptorImpl.java:553) at org.jetbrains.kotlin.load.java.ErasedOverridabilityCondition.isOverridable(ErasedOverridabilityCondition.kt:47) 

Ошибка возникает при вызовах

 res = client.execute(req) 

где client Apache HttpClient.

Скриншот

Исходный файл, где это происходит, можно найти здесь .

Я отправил отчет об ошибках JetBrains, но мне нужно продолжить работу над проектом и, следовательно, работать. Обратите внимание, что до вчерашнего дня все работало нормально. Вчера я обновил плагин Kotlin до самой последней версии, возможно, это проблема.

Как я могу избежать ошибки выше?

Обновление 1 (03.03.2017 14:46 MSK):

Это не работает:

 open fun addNote(note: String, compId: Long): ValidationResult { val client = httpClient if (client == null) { return ValidationResult(false, "Internal error") } var res: CloseableHttpResponse? = null var req: HttpUriRequest? try { req = composeAddNoteRequest(note, compId) res = client.execute(req) if (res.statusLine.statusCode != 201) { logger.error("addNote(note='$note', compId=$compId): Wrong status code ${res.statusLine.statusCode}") return ValidationResult(false, "Wrong status code (CRM interaction)") } return ValidationResult(true, "") } catch (throwable: Throwable) { logger.error("addNote(note='$note', compId=$compId)", throwable) return ValidationResult(false, "Database error") } finally { close(res) } return ValidationResult(false, "Internal logic error") } 

Это работает (разница во второй строке сверху):

 open fun addNote(note: String, compId: Long): ValidationResult { val client = httpClient as CloseableHttpClient // Change if (client == null) { return ValidationResult(false, "Internal error") } var res: CloseableHttpResponse? = null var req: HttpUriRequest? try { req = composeAddNoteRequest(note, compId) res = client.execute(req) if (res.statusLine.statusCode != 201) { logger.error("addNote(note='$note', compId=$compId): Wrong status code ${res.statusLine.statusCode}") return ValidationResult(false, "Wrong status code (CRM interaction)") } return ValidationResult(true, "") } catch (throwable: Throwable) { logger.error("addNote(note='$note', compId=$compId)", throwable) return ValidationResult(false, "Database error") } finally { close(res) } return ValidationResult(false, "Internal logic error") } 

В приведенном выше примере client.execute(req) возвращает HttpResponse , который не является CloseableHttpResponse . Таким образом, ошибка несоответствия типа верна. Либо вы должны использовать CloseableHttpClient , либо client.execute(req) для CloseableHttpResponse .

Я не смог воспроизвести KotlinFrontEndException из вашего примера. Из предоставленной трассировки стека я могу вывести, что что-то случилось с «адаптерами SAM», то есть когда вы используете лямбда Kotlin в вызове метода Java, который принимает интерфейс с одним абстрактным методом (SAM). Пожалуйста, напишите здесь ошибку, если проблема все еще происходит: http://kotl.in/issue

Intereting Posts
Вызов RxJava Single In Kotlin Lambda Как отладить «ошибку SQL (запрос) или отсутствующую базу данных» в приложении для Android? Как получить содержимое веб-страницы на Kotlin Могу ли я написать функцию расширения Kotlin, которая использует автоспуск Spring bean? как создать массив повторяющихся объектов в котлин? Kotlin – lateinit VS Any? = null делегировать вложенную закрытую закрытие соответствующего класса Лучший способ повторить JSON в Котлине Как создать вкладку в anko Используя черты с классами данных в Котлине? Не удается получить доступ к внутренним компонентам из тестового источника с помощью Android Неверное текстовое изображение IllegalStateException не имеет значения для Kotlin Как скопировать список Завершенных исполнений с помощью RxJava? Kotlin coroutines использует продукты и mockito, чтобы издеваться над производственной работой Каков правильный способ развёртки и обработчиков маршрутов Ktor для типичной реализации REST?