Кажется, что пружина Spring Kafka игнорирует примечание @Payload(required = false)
во время пакетной обработки.По крайней мере, вместо получения null
для Tombstone
я всегда получаю KafkaNull
объектов независимо от того, что установлено в @Payload
аннотации.
Мой код выглядит следующим образом:
@KafkaListener(topics = ["\${kafka.topic.categories}"])
fun receive(
@Header(KafkaHeaders.RECEIVED_MESSAGE_KEY) List<String> keys,
@Payload(required = false) categories: List<Category>
) {
...
}
Ничего особенного.Я получаю список записей, но всегда KafkaNull
как запись Tombstone
, что приводит к исключению приведения класса.
В не пакетном режиме все работает отлично, как и ожидалось.
У вас есть идеи, почему это так?
ОБНОВЛЕНИЕ: Исправлено через https://github.com/spring-projects/spring-kafka/issues/974