spring-projects / spring-kafka

Provides Familiar Spring Abstractions for Apache Kafka
https://projects.spring.io/spring-kafka
Apache License 2.0
2.19k stars 1.56k forks source link

Value parameters in ReactiveKafkaProducerTemplate should be nullable #3617

Open aelfric opened 1 week ago

aelfric commented 1 week ago

In what version(s) of Spring for Apache Kafka are you seeing this issue?

For example:

3.1.1 - but seems like this is true in the latest versions too

Describe the bug

Similar to https://github.com/spring-projects/spring-kafka/issues/1825 the @NonNullApi applied to the package org.springframework.kafka.core.reactive means that static analysis tools think it is not possible to pass null into org.springframework.kafka.core.reactive.ReactiveKafkaProducerTemplate#send(java.lang.String, K, V), but null is allowed and required if we want to publish null tombstone messages.

To Reproduce

Create a ReactiveKafkaProducerTemplate instance and call send on it with a value of null, run SonarLint on that class.

Expected behavior

The value parameter in this method and the other related methods should be annotated as nullable.

artembilan commented 1 week ago

Good catch! Feel free to contribute the fix: https://github.com/spring-projects/spring-kafka/blob/main/CONTRIBUTING.adoc