kafka-ui
kafka-ui copied to clipboard
Record headers not passed to custom serde when deserializing key
Issue submitter TODO list
- [X] I've looked up my issue in FAQ
- [X] I've searched for an already existing issues here
- [X] I've tried running
master-labeled docker image and the issue still persists there - [X] I'm running a supported version of the application which is listed here
Describe the bug (actual behavior)
When ConsumerRecordDeserializer invoke Serde.Deserializer.deserialize, it pass in an empty list of RecordHeader instead of the actual RecordHeaders
var deserResult = keyDeserializer.deserialize(new RecordHeadersImpl(), rec.key().get())
My custom Serde require the record headers to find the encoding schema from our schema registry.
Expected behavior
ConsumerRecordDeserializer should pass the record headers to the deserialize function like what it does when deserializing values.
var deserResult = keyDeserializer.deserialize(new RecordHeadersImpl(rec.headers()), rec.key().get())
Your installation details
I reference the master branch code above: https://github.com/provectus/kafka-ui/blob/83b5a60cc08501b570a0c4d0b4cdfceb1b88d6b7/kafka-ui-api/src/main/java/com/provectus/kafka/ui/serdes/ConsumerRecordDeserializer.java#L81
Steps to reproduce
Problem should be obvious from the actual source code quoted above.
Screenshots
No response
Logs
No response
Additional context
My custom Serde cannot deserialize record key without information in the record headers.