Body Error Not Propagating

Abierto
#642 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
42/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
scala
Área
backend

Línea de trabajo

Comienza en blaze-client/src/main/scala/org/http4s/client/blaze/Http1Connection.scala alrededor de la línea 161, donde se inicia la solicitud y se ignora el error del body. Reproduce el comportamiento con la prueba de BlazeClient proporcionada usando un body de solicitud que falla; se considera terminado cuando el intento devuelve Left(expectedException) en lugar de completarse correctamente u ocultar el error.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug module:blaze-client

https://github.com/http4s/http4s/blob/c1deeac33cf14668e1a5b4d167385d585bb970d9/blaze-client/src/main/scala/org/http4s/client/blaze/Http1Connection.scala#L161

The request is started so the error gets swallowed.

We should put in something that can echo that back up to the implementer.

val blazeClientR = BlazeClientBuilder[IO](ec)
    .withMaxTotalConnections(256)
    .withMaxConnectionsPerRequestKey(_ => 256)
    .withRequestTimeout(500.milliseconds)
    .resource

  "BlazeClient" should "fail if body is failing" in {

    val expectedException = new RuntimeException("BOOM")

    blazeClientR
      .use { client =>
        for {
          request <- POST(
            Stream.raiseError[IO](expectedException).covaryOutput[Byte],
            uri"https://example.com"
          )
          response <- client.expect[String](request)
        } yield response
      }
      .attempt
      .unsafeRunSync() shouldBe Left(expectedException)
  }
Lenguaje dominante
Scala
Estrellas
371
Forks
63
Merge medio
7 h 44 min
PR fusionados (30 d)
5

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de http4s/blaze

Todos los issues de http4s/blaze

Issues similares

Más issues de Scala

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.