D T created KAFKA-7212:
--------------------------
Summary: Bad exception message on failed serialization
Key: KAFKA-7212
URL: https://issues.apache.org/jira/browse/KAFKA-7212
Project: Kafka
Issue Type: Bug
Components: clients, producer
Affects Versions: 1.1.1, 1.0.1
Reporter: D T
I use Spring-Kafka to connect to a Kafka-Server. While trying to use Spring's
MessageConverter I encountered strange error messages that did not make any
sense for me.
{noformat}
org.apache.kafka.common.errors.SerializationException: Can't convert value of
class org.springframework.messaging.support.GenericMessage to class
org.apache.kafka.common.serialization.ByteArraySerializer specified in
value.serializer
Caused by: java.lang.ClassCastException:
org.springframework.messaging.support.GenericMessage cannot be cast to [B
at
org.apache.kafka.common.serialization.ByteArraySerializer.serialize(ByteArraySerializer.java:21)
at
org.apache.kafka.common.serialization.ExtendedSerializer$Wrapper.serialize(ExtendedSerializer.java:65)
at
org.apache.kafka.common.serialization.ExtendedSerializer$Wrapper.serialize(ExtendedSerializer.java:55)
at
org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:791)
at
org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:768)
at
org.springframework.kafka.core.DefaultKafkaProducerFactory$CloseSafeProducer.send(DefaultKafkaProducerFactory.java:285)
at
org.springframework.kafka.core.KafkaTemplate.doSend(KafkaTemplate.java:349)
at
org.springframework.kafka.core.KafkaTemplate.send(KafkaTemplate.java:182){noformat}
My question was why would Kafka try to cast/convert Spring's GenericMessage to
Kafka's ByteArraySerializer?
After quite some time trying various config options I debugged the code and
found that the exception message was just bad.
The message should be something like
{noformat}
Can't convert value of class
org.springframework.messaging.support.GenericMessage to byte[] in class
org.apache.kafka.common.serialization.ByteArraySerializer specified in
value.serializer{noformat}
The issue is caused by line:
[https://github.com/apache/kafka/blob/1.1.1/clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java#L801]
and
[https://github.com/apache/kafka/blob/1.1.1/clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java#L809]
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)