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)