This is an automated email from the ASF dual-hosted git repository.

lhotari pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new a56bd876f5a [improve][client] Use Jackson's ObjectReader in Client's 
JSON readers (#19215)
a56bd876f5a is described below

commit a56bd876f5acf328c7512715279212c650e52d43
Author: Lari Hotari <[email protected]>
AuthorDate: Fri Jan 13 01:01:25 2023 +0200

    [improve][client] Use Jackson's ObjectReader in Client's JSON readers 
(#19215)
---
 .../pulsar/client/impl/schema/reader/JacksonJsonReader.java      | 9 +++++----
 .../org/apache/pulsar/client/impl/schema/reader/JsonReader.java  | 9 +++++----
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git 
a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/reader/JacksonJsonReader.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/reader/JacksonJsonReader.java
index 478d40a291d..4220457dcef 100644
--- 
a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/reader/JacksonJsonReader.java
+++ 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/reader/JacksonJsonReader.java
@@ -19,6 +19,7 @@
 package org.apache.pulsar.client.impl.schema.reader;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.ObjectReader;
 import java.io.IOException;
 import java.io.InputStream;
 import org.apache.pulsar.client.api.SchemaSerializationException;
@@ -33,17 +34,17 @@ import org.slf4j.LoggerFactory;
  */
 public class JacksonJsonReader<T> implements SchemaReader<T> {
     private final Class<T> pojo;
-    private final ObjectMapper objectMapper;
+    private final ObjectReader objectReader;
 
     public JacksonJsonReader(ObjectMapper objectMapper, Class<T> pojo) {
         this.pojo = pojo;
-        this.objectMapper = objectMapper;
+        this.objectReader = pojo != null ? objectMapper.readerFor(pojo) : 
objectMapper.reader();
     }
 
     @Override
     public T read(byte[] bytes, int offset, int length) {
         try {
-            return objectMapper.readValue(bytes, offset, length, this.pojo);
+            return objectReader.readValue(bytes, offset, length);
         } catch (IOException e) {
             throw new SchemaSerializationException(e);
         }
@@ -52,7 +53,7 @@ public class JacksonJsonReader<T> implements SchemaReader<T> {
     @Override
     public T read(InputStream inputStream) {
         try {
-            return objectMapper.readValue(inputStream, pojo);
+            return objectReader.readValue(inputStream, pojo);
         } catch (IOException e) {
             throw new SchemaSerializationException(e);
         } finally {
diff --git 
a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/reader/JsonReader.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/reader/JsonReader.java
index 0b86cbcc84b..5e146698e8f 100644
--- 
a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/reader/JsonReader.java
+++ 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/reader/JsonReader.java
@@ -19,6 +19,7 @@
 package org.apache.pulsar.client.impl.schema.reader;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.ObjectReader;
 import java.io.IOException;
 import java.io.InputStream;
 import org.apache.pulsar.client.api.SchemaSerializationException;
@@ -35,17 +36,17 @@ import org.slf4j.LoggerFactory;
 @Deprecated
 public class JsonReader<T> implements SchemaReader<T> {
     private final Class<T> pojo;
-    private final ObjectMapper objectMapper;
+    private final ObjectReader objectReader;
 
     public JsonReader(ObjectMapper objectMapper, Class<T> pojo) {
         this.pojo = pojo;
-        this.objectMapper = objectMapper;
+        this.objectReader = pojo != null ? objectMapper.readerFor(pojo) : 
objectMapper.reader();
     }
 
     @Override
     public T read(byte[] bytes, int offset, int length) {
         try {
-            return objectMapper.readValue(bytes, offset, length, this.pojo);
+            return objectReader.readValue(bytes, offset, length);
         } catch (IOException e) {
             throw new SchemaSerializationException(e);
         }
@@ -54,7 +55,7 @@ public class JsonReader<T> implements SchemaReader<T> {
     @Override
     public T read(InputStream inputStream) {
         try {
-            return objectMapper.readValue(inputStream, pojo);
+            return objectReader.readValue(inputStream);
         } catch (IOException e) {
             throw new SchemaSerializationException(e);
         } finally {

Reply via email to