Skip to content

NPE in JsonSerializer on template.send if key is null #686

@Shabin

Description

@Shabin

I just upgraded from 1.3.4.RELEASE to 2.1.6.RELEASE and on sending a message without any key I am getting NPE.

-java.lang.NullPointerException
	at org.springframework.kafka.support.serializer.JsonSerializer.serialize(JsonSerializer.java:134)
	at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:783)
	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:348)
	at org.springframework.kafka.core.KafkaTemplate.send(KafkaTemplate.java:181)
	at com.itest.event.distributer.kafka.KafkaEventDistributor.notify(KafkaEventDistributor.java:226)

I am calling the default send() method.
template.send(topicName, eventdata);

I coudn't find any migration steps related to this.

My kafka template configuration:

<bean id="kafkaTemplate" class="org.springframework.kafka.core.KafkaTemplate">
		<constructor-arg>
			<bean class="org.springframework.kafka.core.DefaultKafkaProducerFactory">
				<constructor-arg>
					<map>
						<entry key="bootstrap.servers" value="${event.kafka.url}" />
						<entry key="key.serializer"
							value="org.springframework.kafka.support.serializer.JsonSerializer" />
						<entry key="value.serializer"
							value="com.itest.event.kafka.EventJsonSerializer" />
					</map>
				</constructor-arg>
			</bean>
		</constructor-arg>
	</bean>

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions