FasterXML / FasterXML/jackson-core

JsonParser.getCurrentLocation is not updated for `DataInput` input

Abierto
#601 3 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Java
Estrellas
2.4k
Forks
928
Merge medio
2 d 18 h
PR fusionados (30 d)
24

Descripción

### Issue

Using a `JsonParser` instantiated via `JsonParser.createParser(DataInput)` does not update `JsonLocation` values returned by `JsonParser.getCurrentLocation` (everything defaults to -1).

Switching to `JsonParser.createParser(InputStream)` with the same input object populates the `JsonLocation` data as expected.

### Use case

I use `JsonParser` to manually extract slices of Netty byte buffers (that contain Json). To feed Netty ByteBufs to JsonParser, I have to wrap the `ByteBuf` in a `ByteBufInputStream` which `extends InputStream` and `implements DataInput`. `JsonParser` accepts both types so explicit casting is required.

* This works and populates `JsonLocation` values:
```
ByteBuf buf = ...;
JsonParser parser = JSON_FACTORY.createParser((InputStream) new ByteBufInputStream(buf));
```
* This does not populate `JsonLocation` values:
```
ByteBuf buf = ...;
JsonParser parser = JSON_FACTORY.createParser((DataInput) new ByteBufInputStream(buf));
```

Issue affects at least versions 2.9.8 and 2.10.2.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.