-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
Problem:
we have two kafkaTemplates, one is for SJ to send ,second is for DFW to send message . then we use these two template to send same producer Record. the second Kafka template send message failure with java.lang.IllegalStateException: RecordHeaders has been closed.
Version:
Kafka-client-3.0.0
Spring-kafka 2.8.0
Stack:
java.lang.IllegalStateException: RecordHeaders has been closed.
at org.apache.kafka.common.header.internals.RecordHeaders.canWrite(RecordHeaders.java:122) ~[kafka-clients-3.0.0.jar:na]
at org.apache.kafka.common.header.internals.RecordHeaders.add(RecordHeaders.java:61) ~[kafka-clients-3.0.0.jar:na]
at org.springframework.kafka.support.mapping.AbstractJavaTypeMapper.addHeader(AbstractJavaTypeMapper.java:145) ~[spring-kafka-2.8.0.jar:2.8.0]
at org.springframework.kafka.support.mapping.DefaultJackson2JavaTypeMapper.fromJavaType(DefaultJackson2JavaTypeMapper.java:172) ~[spring-kafka-2.8.0.jar:2.8.0]
at org.springframework.kafka.support.serializer.JsonSerializer.serialize(JsonSerializer.java:201) ~[spring-kafka-2.8.0.jar:2.8.0]
at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:929) ~[kafka-clients-3.0.0.jar:na]
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:889) ~[kafka-clients-3.0.0.jar:na]
at org.springframework.kafka.core.DefaultKafkaProducerFactory$CloseSafeProducer.send(DefaultKafkaProducerFactory.java:984) ~[spring-kafka-2.8.0.jar:2.8.0]
at org.springframework.kafka.core.KafkaTemplate.doSend(KafkaTemplate.java:649) ~[spring-kafka-2.8.0.jar:2.8.0]
Debug
second time to send the producer Record with isReadOnly=true, I don't know when set it as true from false
@garyrussell can you help to check the issue? or my wrong usage ?