From b1950510522ea026e4703408bacd91a0dd936135 Mon Sep 17 00:00:00 2001 From: Chia-Ping Tsai Date: Wed, 10 Feb 2021 23:55:15 +0800 Subject: [PATCH] KAFKA-12321 the comparison function for uuid type should be 'equals' rather than '==' --- .../java/org/apache/kafka/common/message/MessageTest.java | 8 ++++++++ .../src/main/java/org/apache/kafka/message/FieldSpec.java | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/clients/src/test/java/org/apache/kafka/common/message/MessageTest.java b/clients/src/test/java/org/apache/kafka/common/message/MessageTest.java index 52cd33816d01c..5dc379e0e7fee 100644 --- a/clients/src/test/java/org/apache/kafka/common/message/MessageTest.java +++ b/clients/src/test/java/org/apache/kafka/common/message/MessageTest.java @@ -49,6 +49,7 @@ import org.apache.kafka.common.protocol.ByteBufferAccessor; import org.apache.kafka.common.protocol.Errors; import org.apache.kafka.common.protocol.Message; +import org.apache.kafka.common.protocol.MessageUtil; import org.apache.kafka.common.protocol.ObjectSerializationCache; import org.apache.kafka.common.protocol.types.RawTaggedField; import org.junit.jupiter.api.Test; @@ -749,6 +750,13 @@ public void testProduceResponseVersions() throws Exception { } } + @Test + public void defaultValueShouldBeWritable() { + for (short version = SimpleExampleMessageData.LOWEST_SUPPORTED_VERSION; version <= SimpleExampleMessageData.HIGHEST_SUPPORTED_VERSION; ++version) { + MessageUtil.toByteBuffer(new SimpleExampleMessageData(), version); + } + } + @Test public void testSimpleMessage() throws Exception { final SimpleExampleMessageData message = new SimpleExampleMessageData(); diff --git a/generator/src/main/java/org/apache/kafka/message/FieldSpec.java b/generator/src/main/java/org/apache/kafka/message/FieldSpec.java index 0f31ba00766e0..d15b03cdb95db 100644 --- a/generator/src/main/java/org/apache/kafka/message/FieldSpec.java +++ b/generator/src/main/java/org/apache/kafka/message/FieldSpec.java @@ -589,7 +589,7 @@ void generateNonDefaultValueCheck(HeaderGenerator headerGenerator, fieldPrefix, camelCaseName(), fieldPrefix, camelCaseName()); } } - } else if (type().isString() || type().isStruct()) { + } else if (type().isString() || type().isStruct() || type() instanceof FieldType.UUIDFieldType) { if (fieldDefault.equals("null")) { buffer.printf("if (%s%s != null) {%n", fieldPrefix, camelCaseName()); } else if (nullableVersions.empty()) {