diff --git a/flink-core/src/main/java/org/apache/flink/types/variant/BinaryVariantInternalBuilder.java b/flink-core/src/main/java/org/apache/flink/types/variant/BinaryVariantInternalBuilder.java index 3a1ce3c969f67..928c267f3658c 100644 --- a/flink-core/src/main/java/org/apache/flink/types/variant/BinaryVariantInternalBuilder.java +++ b/flink-core/src/main/java/org/apache/flink/types/variant/BinaryVariantInternalBuilder.java @@ -290,7 +290,7 @@ public void appendTimestamp(long microsSinceEpoch) { public void appendFloat(float f) { checkCapacity(1 + 4); writeBuffer[writePos++] = primitiveHeader(FLOAT); - writeLong(writeBuffer, writePos, Float.floatToIntBits(f), 8); + writeLong(writeBuffer, writePos, Float.floatToIntBits(f), 4); writePos += 4; } diff --git a/flink-core/src/test/java/org/apache/flink/types/variant/BinaryVariantInternalBuilderTest.java b/flink-core/src/test/java/org/apache/flink/types/variant/BinaryVariantInternalBuilderTest.java index 4e97c6401528c..924e538f40ad6 100644 --- a/flink-core/src/test/java/org/apache/flink/types/variant/BinaryVariantInternalBuilderTest.java +++ b/flink-core/src/test/java/org/apache/flink/types/variant/BinaryVariantInternalBuilderTest.java @@ -22,8 +22,11 @@ import java.io.IOException; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collections; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatCode; import static org.assertj.core.api.Assertions.assertThatThrownBy; class BinaryVariantInternalBuilderTest { @@ -116,4 +119,12 @@ void testParseJsonObject() throws IOException { assertThat(variant.getField("k1").getByte()).isEqualTo((byte) 2); assertThat(variant.getField("k2").getDecimal()).isEqualTo(BigDecimal.valueOf(1.5)); } + + @Test + void testAppendFloat() { + BinaryVariantInternalBuilder builder = new BinaryVariantInternalBuilder(false); + ArrayList floatList = new ArrayList<>(Collections.nCopies(25, 4.2f)); + + assertThatCode(() -> floatList.forEach(builder::appendFloat)).doesNotThrowAnyException(); + } }