UnsupportedOperationException al crear un proyecto de Kotlin en Idea

Cuando bash build mi proyecto Kotlin, aparece el siguiente error en 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) 

El error parece ocurrir en llamadas

 res = client.execute(req) 

donde el client es Apache HttpClient.

Captura de pantalla

El file fuente, donde esto ocurre, se puede encontrar aquí .

Envié el informe de error a JetBrains, pero tengo que trabajar más en el proyecto y, por lo tanto, trabajar mucho. Tenga en count que hasta ayer todo funcionó bien. Ayer actualicé el plugin de Kotlin a la versión más reciente, tal vez ese sea el problema.

¿Cómo puedo evitar el error anterior?

Actualización 1 (03.03.2017 14:46 MSK):

Esto no funciona:

 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") } 

Esto funciona (la diferencia está en la segunda línea desde la parte superior):

 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") } 

En su ejemplo anterior, client.execute(req) devuelve HttpResponse , que no es un subtipo de CloseableHttpResponse . Entonces, el error de error de tipo es correcto. O bien debería usar CloseableHttpClient aquí, o client.execute(req) a CloseableHttpResponse .

No pude reproducir KotlinFrontEndException de su ejemplo. Desde el seguimiento de stack proporcionado, puedo deducir que algo malo sucedió con los "adaptadores SAM", es decir, cuando usa un Kotlin lambda en una llamada al método Java que acepta una interfaz de método abstracto único (SAM). Por favor, presente un error aquí si el problema persiste: http://kotl.in/issue

  • Kotlin Dagger 2 no puede proporcionar Interactor
  • Kotlin File en Native iOS Project con Kotlin / Native
  • Instancia de class Kotlin assertEqual
  • ¿Por qué `como` en Kotlin no echó en este caso
  • Clase extendida con muchos parameters
  • Por qué var foo = null comstack
  • ¿Por qué se eliminó el bucle indexado en Kotlin?
  • parámetro de function final o val o en Kotlin?
  • Límites generics de Kotlin para la class
  • BluetoothSocket no se conecta al dispositivo de destino
  • ¿Cómo obtengo las funciones declaradas de una class Kotlin (KClass en M12)?