You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by gu...@apache.org on 2022/09/30 13:45:31 UTC
[kafka] branch trunk updated: Fix ByteBufferSerializer#serialize(String, ByteBuffer) not roundtrip input with ByteBufferDeserializer#deserialize(String, byte[]) (#12704)
This is an automated email from the ASF dual-hosted git repository.
guozhang pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/trunk by this push:
new 496ae054c2d Fix ByteBufferSerializer#serialize(String, ByteBuffer) not roundtrip input with ByteBufferDeserializer#deserialize(String, byte[]) (#12704)
496ae054c2d is described below
commit 496ae054c2d43c0905167745bfb2f4a0725e9fc2
Author: LinShunKang <li...@gmail.com>
AuthorDate: Fri Sep 30 21:45:18 2022 +0800
Fix ByteBufferSerializer#serialize(String, ByteBuffer) not roundtrip input with ByteBufferDeserializer#deserialize(String, byte[]) (#12704)
Reviewers: Guozhang Wang <wa...@gmail.com>
---
.../apache/kafka/common/serialization/ByteBufferSerializer.java | 8 +++-----
.../org/apache/kafka/common/serialization/SerializationTest.java | 4 +++-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/clients/src/main/java/org/apache/kafka/common/serialization/ByteBufferSerializer.java b/clients/src/main/java/org/apache/kafka/common/serialization/ByteBufferSerializer.java
index 5987688759e..06b66a62cb0 100644
--- a/clients/src/main/java/org/apache/kafka/common/serialization/ByteBufferSerializer.java
+++ b/clients/src/main/java/org/apache/kafka/common/serialization/ByteBufferSerializer.java
@@ -21,8 +21,7 @@ import org.apache.kafka.common.utils.Utils;
import java.nio.ByteBuffer;
/**
- * ByteBufferSerializer will not change ByteBuffer's mark, position and limit.
- * And do not need to flip before call <i>serialize(String, ByteBuffer)</i>. For example:
+ * Do not need to flip before call <i>serialize(String, ByteBuffer)</i>. For example:
*
* <blockquote>
* <pre>
@@ -48,8 +47,7 @@ public class ByteBufferSerializer implements Serializer<ByteBuffer> {
}
}
- final ByteBuffer copyData = data.asReadOnlyBuffer();
- copyData.flip();
- return Utils.toArray(copyData);
+ data.flip();
+ return Utils.toArray(data);
}
}
diff --git a/clients/src/test/java/org/apache/kafka/common/serialization/SerializationTest.java b/clients/src/test/java/org/apache/kafka/common/serialization/SerializationTest.java
index eb1fee3943f..a0b67a03d42 100644
--- a/clients/src/test/java/org/apache/kafka/common/serialization/SerializationTest.java
+++ b/clients/src/test/java/org/apache/kafka/common/serialization/SerializationTest.java
@@ -50,7 +50,9 @@ public class SerializationTest {
put(Float.class, Arrays.asList(5678567.12312f, -5678567.12341f));
put(Double.class, Arrays.asList(5678567.12312d, -5678567.12341d));
put(byte[].class, Arrays.asList("my string".getBytes()));
- put(ByteBuffer.class, Arrays.asList(ByteBuffer.allocate(10).put("my string".getBytes())));
+ put(ByteBuffer.class, Arrays.asList(ByteBuffer.wrap("my string".getBytes()),
+ ByteBuffer.allocate(10).put("my string".getBytes()),
+ ByteBuffer.allocateDirect(10).put("my string".getBytes())));
put(Bytes.class, Arrays.asList(new Bytes("my string".getBytes())));
put(UUID.class, Arrays.asList(UUID.randomUUID()));
}