kafka-ui icon indicating copy to clipboard operation
kafka-ui copied to clipboard

Record headers not passed to custom serde when deserializing key

Open twinprime opened this issue 1 year ago • 2 comments

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.

twinprime avatar Oct 25 '24 06:10 twinprime