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();