Skip to content

Commit 01aa8ab

Browse files
BE: Support sending null headers (#651)
Co-authored-by: Roman Zabaluev <[email protected]>
1 parent 8f9c634 commit 01aa8ab

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

api/src/main/java/io/kafbat/ui/serdes/ProducerRecordCreator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public ProducerRecord<byte[], byte[]> create(String topic,
3131

3232
private Iterable<Header> createHeaders(Map<String, String> clientHeaders) {
3333
RecordHeaders headers = new RecordHeaders();
34-
clientHeaders.forEach((k, v) -> headers.add(new RecordHeader(k, v.getBytes())));
34+
clientHeaders.forEach((k, v) -> headers.add(new RecordHeader(k, v == null ? null : v.getBytes())));
3535
return headers;
3636
}
3737

api/src/test/java/io/kafbat/ui/service/SendAndReadTests.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import io.kafbat.ui.serdes.builtin.StringSerde;
2020
import io.kafbat.ui.serdes.builtin.sr.SchemaRegistrySerde;
2121
import java.time.Duration;
22+
import java.util.Collections;
2223
import java.util.List;
2324
import java.util.Map;
2425
import java.util.Objects;
@@ -425,6 +426,25 @@ void topicMessageMetadataJson() {
425426
});
426427
}
427428

429+
@Test
430+
void headerValueNullPresentTest() {
431+
new SendAndReadSpec()
432+
.withKeySchema(JSON_SCHEMA)
433+
.withValueSchema(JSON_SCHEMA)
434+
.withMsgToSend(
435+
new CreateTopicMessageDTO()
436+
.key(JSON_SCHEMA_RECORD)
437+
.keySerde(SchemaRegistrySerde.name())
438+
.content(JSON_SCHEMA_RECORD)
439+
.valueSerde(SchemaRegistrySerde.name())
440+
.headers(Collections.singletonMap("header123", null))
441+
)
442+
.doAssert(polled -> {
443+
assertThat(polled.getHeaders().get("header123")).isNull();
444+
});
445+
}
446+
447+
428448
@Test
429449
void noKeyAndNoContentPresentTest() {
430450
new SendAndReadSpec()

0 commit comments

Comments
 (0)