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)

Reply via email to