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 <linshunkang....@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 <wangg...@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()));
         }

Reply via email to