spring-kafka
spring-kafka copied to clipboard
BatchMessagingMessageConverter loses headers from ConsumerRecord
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