From 45564d17fae0855c5e1a1b619e99d0347423a8a0 Mon Sep 17 00:00:00 2001 From: Thorne Date: Thu, 26 Feb 2026 19:22:23 +0800 Subject: [PATCH] Cache split.splitId() result in a local variable to avoid calling the method twice per iteration: - Clarity: Makes it explicit that both usages refer to the same value, improving readability. - Consistency: Eliminates any theoretical risk if splitId() were ever changed to a non-pure method in the future. - Minor efficiency: Avoids a redundant method dispatch on every iteration of the loop. --- .../mysql/source/assigners/MySqlSnapshotSplitAssigner.java | 5 +++-- 1 file changed, 3 insertions(+), 2 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/assigners/MySqlSnapshotSplitAssigner.java b/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/org/apache/flink/cdc/connectors/mysql/source/assigners/MySqlSnapshotSplitAssigner.java index 1acbeac941b..106fc07dd44 100644 --- a/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/org/apache/flink/cdc/connectors/mysql/source/assigners/MySqlSnapshotSplitAssigner.java +++ b/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/org/apache/flink/cdc/connectors/mysql/source/assigners/MySqlSnapshotSplitAssigner.java @@ -390,11 +390,12 @@ public List getFinishedSplitInfos() { new ArrayList<>(assignedSplits.values()); List finishedSnapshotSplitInfos = new ArrayList<>(); for (MySqlSchemalessSnapshotSplit split : assignedSnapshotSplit) { - BinlogOffset binlogOffset = splitFinishedOffsets.get(split.splitId()); + String splitId = split.splitId(); + BinlogOffset binlogOffset = splitFinishedOffsets.get(splitId); finishedSnapshotSplitInfos.add( new FinishedSnapshotSplitInfo( split.getTableId(), - split.splitId(), + splitId, split.getSplitStart(), split.getSplitEnd(), binlogOffset));