FasterXML / FasterXML/jackson-core
JsonParser.getCurrentLocation is not updated for `DataInput` input
- Dominant language
- Java
- Stars
- 2.4k
- Forks
- 928
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 24
Description
### 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.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.