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

yux pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink-cdc.git


The following commit(s) were added to refs/heads/master by this push:
     new a1b7d1ec9 [FLINK-39300][connect/mysql] Reuse ObjectMapper as static 
constant to avoid repeated instantiation (#4330)
a1b7d1ec9 is described below

commit a1b7d1ec9524b213a111a82dcb870ba641c44f27
Author: EricZ <[email protected]>
AuthorDate: Fri Mar 27 09:26:52 2026 +0800

    [FLINK-39300][connect/mysql] Reuse ObjectMapper as static constant to avoid 
repeated instantiation (#4330)
---
 .../connectors/mysql/source/offset/BinlogOffsetSerializer.java |  8 ++++----
 .../connectors/mysql/source/utils/OnlineSchemaChangeUtils.java | 10 ++++++----
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git 
a/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/org/apache/flink/cdc/connectors/mysql/source/offset/BinlogOffsetSerializer.java
 
b/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/org/apache/flink/cdc/connectors/mysql/source/offset/BinlogOffsetSerializer.java
index 84ace131f..dfb3e1b3f 100644
--- 
a/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/org/apache/flink/cdc/connectors/mysql/source/offset/BinlogOffsetSerializer.java
+++ 
b/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/org/apache/flink/cdc/connectors/mysql/source/offset/BinlogOffsetSerializer.java
@@ -30,15 +30,15 @@ public class BinlogOffsetSerializer {
 
     public static final BinlogOffsetSerializer INSTANCE = new 
BinlogOffsetSerializer();
 
+    private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+
     public byte[] serialize(BinlogOffset binlogOffset) throws IOException {
         // use JSON serialization
-        ObjectMapper objectMapper = new ObjectMapper();
-        return objectMapper.writeValueAsBytes(binlogOffset.getOffset());
+        return OBJECT_MAPPER.writeValueAsBytes(binlogOffset.getOffset());
     }
 
     public BinlogOffset deserialize(byte[] bytes) throws IOException {
-        ObjectMapper objectMapper = new ObjectMapper();
-        Map<String, String> offset = objectMapper.readValue(bytes, Map.class);
+        Map<String, String> offset = OBJECT_MAPPER.readValue(bytes, Map.class);
         return new BinlogOffset(offset);
     }
 }
diff --git 
a/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/org/apache/flink/cdc/connectors/mysql/source/utils/OnlineSchemaChangeUtils.java
 
b/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/org/apache/flink/cdc/connectors/mysql/source/utils/OnlineSchemaChangeUtils.java
index aef47a4d3..8bd0f1a5e 100644
--- 
a/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/org/apache/flink/cdc/connectors/mysql/source/utils/OnlineSchemaChangeUtils.java
+++ 
b/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/org/apache/flink/cdc/connectors/mysql/source/utils/OnlineSchemaChangeUtils.java
@@ -50,6 +50,8 @@ public class OnlineSchemaChangeUtils {
      * Pattern matching gh-ost shadow table ({@code _<name>_gho}) and pt-osc 
new table ({@code
      * _<name>_new}), which carry the actual ALTER DDL during an online schema 
change.
      */
+    private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+
     private static final Pattern OSC_TABLE_ID_PATTERN = 
Pattern.compile("^_(.*)_(gho|new)$");
 
     /**
@@ -106,10 +108,10 @@ public class OnlineSchemaChangeUtils {
             return false;
         }
         Struct value = (Struct) record.value();
-        ObjectMapper mapper = new ObjectMapper();
         try {
             String ddl =
-                    mapper.readTree(value.getString(HISTORY_RECORD_FIELD))
+                    OBJECT_MAPPER
+                            .readTree(value.getString(HISTORY_RECORD_FIELD))
                             .get(HistoryRecord.Fields.DDL_STATEMENTS)
                             .asText()
                             .toLowerCase();
@@ -136,11 +138,11 @@ public class OnlineSchemaChangeUtils {
             return Optional.empty();
         }
         Struct value = (Struct) record.value();
-        ObjectMapper mapper = new ObjectMapper();
 
         try {
             String ddl =
-                    mapper.readTree(value.getString(HISTORY_RECORD_FIELD))
+                    OBJECT_MAPPER
+                            .readTree(value.getString(HISTORY_RECORD_FIELD))
                             .get(HistoryRecord.Fields.DDL_STATEMENTS)
                             .asText()
                             .toLowerCase();

Reply via email to