ServerSentEventHttpMessageReader does not recognize data fields without a colon
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
Línea de trabajo
Empieza leyendo ServerSentEventHttpMessageReader y la prueba reproducible readServerSentEventsDataWithoutColon del issue. Comprueba cómo analiza el lector las líneas sin dos puntos y luego ejecuta la prueba específica. Se considera terminado cuando los campos de datos sin dos puntos producen los datos de evento esperados, "\n", igual que la forma con dos puntos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
ServerSentEventHttpMessageReader does not recognize SSE data fields when the colon is omitted:
id:c42
event:foo
data
data
or
id:c42
event:foo
data
According to the WHATWG HTML specification, a line without a colon must be processed as a field name with an empty value.
Therefore, data and data: should be treated equivalently.
Reproducible test case:
@Test
void readServerSentEventsDataWithoutColon() {
// given
ServerSentEventHttpMessageReader reader = new ServerSentEventHttpMessageReader();
String body = """
id:c42
event:foo
data
data
""";
MockServerHttpRequest request = MockServerHttpRequest.post("/")
.body(body);
// when
Flux<ServerSentEvent> events = reader.read(ResolvableType.forClassWithGenerics(ServerSentEvent.class, String.class), request, Collections.emptyMap())
.cast(ServerSentEvent.class);
// then - fails
StepVerifier.create(events)
.expectNext(ServerSentEvent.builder()
.id("c42")
.event("foo")
.data("\n")
.build())
.expectComplete()
.verify();
}
Expected behavior
The reader should follow the WHATWG SSE parsing algorithm:
data\ndata should produce an event with data("\n"), just like data:\ndata:
Actual behavior
The implementation only handles data fields that start with data:
data\ndata produce an event with data(null)
- Lenguaje dominante
- Java
- Estrellas
- 60.3k
- Forks
- 38.7k
- Merge medio
- 1 d 9 h
- PR fusionados (30 d)
- 34
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de spring-projects/spring-framework
-
`YamlProcessor.getFlattenedMap` with `includeEmpty` returns a `null` key for an empty root mappingQuizá libre de nuevo @erfannvb la tomó hace 7 días y no hay ningún pull request abierto. Abiertostatus: waiting-for-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
spring-projects/spring-framework#37522 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
`WebClient` with default codecs drops `ProblemDetail` extension membersQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertostatus: waiting-for-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
spring-projects/spring-framework#37503 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
StandardApiVersionDeprecationHandler generates nonconforming Sunset HTTP datesQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertostatus: waiting-for-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
spring-projects/spring-framework#37486 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
FastByteArrayOutputStream input stream rejects valid skip(long) argumentsQuizá libre de nuevo @hickey-ai la tomó hace 10 días y no hay ningún pull request abierto. Abiertostatus: waiting-for-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
spring-projects/spring-framework#37471 · 6 comentarios ·
Los mantenedores suelen responder en 1 día
-
LinkedCaseInsensitiveMap.keySet().remove returns false after removing a null-valued entryQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertostatus: waiting-for-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
spring-projects/spring-framework#37470 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de spring-projects/spring-framework
Issues similares
-
agent:working bug follow-up lane:auto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Sanne/incus-spawn#1765 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
checkstyle/checkstyle#22260 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
strimzi/strimzi-kafka-operator#13328 · 1 comentario · 3 reacciones ·
Los mantenedores suelen responder en 1 día