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

BatchMessagingMessageConverter loses headers from ConsumerRecord

Open lm231290 opened this issue 7 months ago • 1 comments

Version 3.2.2

Description

List<Map<String, Object>> convertedHeaders = new ArrayList<>(); ... addToRawHeaders(rawHeaders, convertedHeaders, natives, raws, conversionFailures); ... if (this.headerMapper != null && record.headers() != null) { Map<String, Object> converted = new HashMap<>(); this.headerMapper.toHeaders(record.headers(), converted); convertedHeaders.add(converted);

convertedHeaders is used before it is populated

To Reproduce

Use batch listener - @KafkaListener(batch = "true", ...) BatchMessagingMessageConverter is used by default

Expected behavior

All headers are added to MessageHeaders, just like in MessagingMessageConverter

lm231290 avatar Jul 18 '24 21:07 lm231290