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

fanjia pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new 4f5adeb1c7 [Feature][Checkpoint] Add check script for source/sink 
state class serialVersionUID missing (#9118)
4f5adeb1c7 is described below

commit 4f5adeb1c73097b85ffd727a657be209acad81bf
Author: CosmosNi <[email protected]>
AuthorDate: Thu Apr 17 19:01:02 2025 +0800

    [Feature][Checkpoint] Add check script for source/sink state class 
serialVersionUID missing (#9118)
---
 seatunnel-ci-tools/pom.xml                         |   6 +
 .../seatunnel/api/SerialVersionUIDCheckerTest.java | 321 +++++++++++++++++++++
 .../source/AmazonDynamoDBSourceSplit.java          |   1 +
 .../source/AmazonDynamoDBSourceState.java          |   1 +
 .../enumerator/TiDBSourceCheckpointState.java      |   1 +
 .../clickhouse/state/CKAggCommitInfo.java          |   4 +-
 .../seatunnel/clickhouse/state/CKCommitInfo.java   |   4 +-
 .../clickhouse/state/CKFileAggCommitInfo.java      |   1 +
 .../clickhouse/state/CKFileCommitInfo.java         |   1 +
 .../clickhouse/state/ClickhouseSinkState.java      |   4 +-
 .../seatunnel/common/source/SingleSplit.java       |   1 +
 .../common/source/SingleSplitEnumeratorState.java  |   4 +-
 .../doris/sink/committer/DorisCommitInfo.java      |   1 +
 .../doris/sink/writer/DorisSinkState.java          |   1 +
 .../easysearch/source/EasysearchSourceState.java   |   1 +
 .../state/EasysearchAggregatedCommitInfo.java      |   4 +-
 .../easysearch/state/EasysearchCommitInfo.java     |   1 +
 .../easysearch/state/EasysearchSinkState.java      |   4 +-
 .../source/ElasticsearchSourceState.java           |   1 +
 .../state/ElasticsearchAggregatedCommitInfo.java   |   4 +-
 .../state/ElasticsearchCommitInfo.java             |   4 +-
 .../state/ElasticsearchSinkState.java              |   4 +-
 .../seatunnel/fake/source/FakeSourceSplit.java     |   1 +
 .../seatunnel/fake/state/FakeSourceState.java      |   1 +
 .../file/sink/commit/FileAggregatedCommitInfo.java |   1 +
 .../seatunnel/file/sink/commit/FileCommitInfo.java |   1 +
 .../seatunnel/file/sink/state/FileSinkState.java   |   1 +
 .../seatunnel/hbase/source/HbaseSourceSplit.java   |   1 +
 .../hbase/state/HbaseAggregatedCommitInfo.java     |   4 +-
 .../seatunnel/hbase/state/HbaseCommitInfo.java     |   4 +-
 .../seatunnel/hbase/state/HbaseSinkState.java      |   4 +-
 .../hudi/sink/state/HudiAggregatedCommitInfo.java  |   4 +-
 .../seatunnel/hudi/sink/state/HudiCommitInfo.java  |   4 +-
 .../seatunnel/hudi/sink/state/HudiSinkState.java   |   1 +
 .../sink/commit/IcebergAggregatedCommitInfo.java   |   1 +
 .../iceberg/sink/commit/IcebergCommitInfo.java     |   1 +
 .../influxdb/source/InfluxDBSourceSplit.java       |   1 +
 .../influxdb/state/InfluxDBSourceState.java        |   1 +
 .../seatunnel/iotdb/state/IoTDBSourceState.java    |   1 +
 .../seatunnel/jdbc/source/JdbcSourceSplit.java     |   1 +
 .../jdbc/state/JdbcAggregatedCommitInfo.java       |   1 +
 .../seatunnel/jdbc/state/JdbcSinkState.java        |   1 +
 .../seatunnel/jdbc/state/JdbcSourceState.java      |   1 +
 .../connectors/seatunnel/jdbc/state/XidInfo.java   |   1 +
 .../seatunnel/kafka/source/KafkaSourceSplit.java   |   1 +
 .../kafka/state/KafkaAggregatedCommitInfo.java     |   1 +
 .../seatunnel/kafka/state/KafkaCommitInfo.java     |   1 +
 .../seatunnel/kafka/state/KafkaSinkState.java      |   1 +
 .../seatunnel/kafka/state/KafkaSourceState.java    |   1 +
 .../kudu/state/KuduAggregatedCommitInfo.java       |   4 +-
 .../seatunnel/kudu/state/KuduCommitInfo.java       |   4 +-
 .../seatunnel/kudu/state/KuduSinkState.java        |   4 +-
 .../seatunnel/kudu/state/KuduSourceState.java      |   1 +
 .../maxcompute/source/MaxcomputeSourceSplit.java   |   1 +
 .../maxcompute/source/MaxcomputeSourceState.java   |   1 +
 .../seatunnel/milvus/source/MilvusSourceSplit.java |   1 +
 .../seatunnel/milvus/source/MilvusSourceState.java |   1 +
 .../milvus/state/MilvusAggregatedCommitInfo.java   |   1 +
 .../seatunnel/milvus/state/MilvusCommitInfo.java   |   4 +-
 .../seatunnel/milvus/state/MilvusSinkState.java    |   4 +-
 .../seatunnel/mongodb/sink/state/DocumentBulk.java |   1 +
 .../sink/state/MongodbAggregatedCommitInfo.java    |   1 +
 .../mongodb/sink/state/MongodbCommitInfo.java      |   1 +
 .../seatunnel/mongodb/source/split/MongoSplit.java |   1 +
 .../enumerator/PulsarSplitEnumeratorState.java     |   1 +
 .../pulsar/source/split/PulsarPartitionSplit.java  |   1 +
 .../pulsar/state/PulsarAggregatedCommitInfo.java   |   1 +
 .../seatunnel/pulsar/state/PulsarCommitInfo.java   |   1 +
 .../seatunnel/pulsar/state/PulsarSinkState.java    |   1 +
 .../seatunnel/rabbitmq/split/RabbitmqSplit.java    |   1 +
 .../split/RabbitmqSplitEnumeratorState.java        |   4 +-
 .../rocketmq/source/RocketMqSourceSplit.java       |   1 +
 .../rocketmq/source/RocketMqSourceState.java       |   1 +
 .../sink/committer/SelectDBCommitInfo.java         |   1 +
 .../selectdb/sink/writer/SelectDBSinkState.java    |   1 +
 .../seatunnel/sls/source/SlsSourceSplit.java       |   1 +
 .../seatunnel/sls/state/SlsCommitInfo.java         |   1 +
 .../seatunnel/sls/state/SlsSinkState.java          |   1 +
 .../seatunnel/sls/state/SlsSourceState.java        |   1 +
 .../starrocks/source/StarRocksSourceSplit.java     |   1 +
 .../starrocks/source/StarRocksSourceState.java     |   1 +
 .../tablestore/source/TableStoreDBSourceSplit.java |   1 +
 .../tablestore/source/TableStoreDBSourceState.java |   1 +
 .../tdengine/state/TDengineSourceState.java        |   1 +
 .../typesense/source/TypesenseSourceState.java     |   1 +
 .../state/TypesenseAggregatedCommitInfo.java       |   4 +-
 .../typesense/state/TypesenseCommitInfo.java       |   4 +-
 .../typesense/state/TypesenseSinkState.java        |   4 +-
 88 files changed, 459 insertions(+), 23 deletions(-)

diff --git a/seatunnel-ci-tools/pom.xml b/seatunnel-ci-tools/pom.xml
index 18084e0ed1..783d263ba7 100644
--- a/seatunnel-ci-tools/pom.xml
+++ b/seatunnel-ci-tools/pom.xml
@@ -36,6 +36,12 @@
             <version>${javaparser.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>com.github.javaparser</groupId>
+            <artifactId>javaparser-symbol-solver-core</artifactId>
+            <version>${javaparser.version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git 
a/seatunnel-ci-tools/src/test/java/org/apache/seatunnel/api/SerialVersionUIDCheckerTest.java
 
b/seatunnel-ci-tools/src/test/java/org/apache/seatunnel/api/SerialVersionUIDCheckerTest.java
new file mode 100644
index 0000000000..7015a7617e
--- /dev/null
+++ 
b/seatunnel-ci-tools/src/test/java/org/apache/seatunnel/api/SerialVersionUIDCheckerTest.java
@@ -0,0 +1,321 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.seatunnel.api;
+
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.api.extension.TestWatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ParseResult;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.type.ClassOrInterfaceType;
+import com.github.javaparser.ast.type.Type;
+import 
com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
+import com.github.javaparser.resolution.types.ResolvedReferenceType;
+import com.github.javaparser.symbolsolver.JavaSymbolSolver;
+import 
com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
+import 
com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
+import 
com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.FileVisitOption;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static org.junit.jupiter.api.Assertions.fail;
+
+@ExtendWith(SerialVersionUIDCheckerTest.TestResultLogger.class)
+public class SerialVersionUIDCheckerTest {
+    private static final Logger LOG = 
LoggerFactory.getLogger(SerialVersionUIDCheckerTest.class);
+    private static final String JAVA_FILE_EXTENSION = ".java";
+    private static final String CONNECTOR_DIR = "seatunnel-connectors-v2";
+    private static final String JAVA_PATH_FRAGMENT =
+            "src" + File.separator + "main" + File.separator + "java";
+    private static final JavaParser JAVA_PARSER;
+    private static final Set<String> checkedClasses = new HashSet<>();
+    private static final Map<String, ClassOrInterfaceDeclaration> 
classDeclarationMap =
+            new HashMap<>();
+
+    static {
+        CombinedTypeSolver typeSolver = new CombinedTypeSolver();
+        typeSolver.add(new ReflectionTypeSolver());
+        setupTypeSolver(typeSolver);
+        JavaSymbolSolver symbolSolver = new JavaSymbolSolver(typeSolver);
+        JAVA_PARSER = new JavaParser();
+        JAVA_PARSER.getParserConfiguration().setSymbolResolver(symbolSolver);
+    }
+
+    private static void setupTypeSolver(CombinedTypeSolver typeSolver) {
+        try (Stream<Path> paths = Files.walk(Paths.get(".."), 
FileVisitOption.FOLLOW_LINKS)) {
+            paths.filter(path -> path.toString().contains("src/main/java"))
+                    .forEach(
+                            path -> {
+                                try {
+                                    typeSolver.add(new 
JavaParserTypeSolver(path.toFile()));
+                                } catch (Exception e) {
+                                    // ignore
+                                }
+                            });
+        } catch (IOException e) {
+            LOG.error("Failed to setup type solver", e);
+        }
+    }
+
+    @Test
+    public void checkSerialVersionUID() {
+        List<String> missingSerialVersionUID = new ArrayList<>();
+        List<Path> connectorClassPaths = findConnectorClassPaths();
+        LOG.info("Found {} connector class files to check", 
connectorClassPaths.size());
+
+        // First, populate the classDeclarationMap with all classes
+        for (Path path : connectorClassPaths) {
+            populateClassDeclarationMap(path);
+        }
+        LOG.info("Populated class declaration map with {} classes", 
classDeclarationMap.size());
+
+        // Then check each class path for serialVersionUID
+        for (Path path : connectorClassPaths) {
+            checkClassPath(path, missingSerialVersionUID);
+        }
+
+        LOG.info("Check completed. Checked {} connector classes.", 
connectorClassPaths.size());
+        if (!missingSerialVersionUID.isEmpty()) {
+            String errorMessage = 
generateErrorMessage(missingSerialVersionUID);
+            LOG.error("Test failed: {}", errorMessage);
+            fail(errorMessage);
+        }
+        LOG.info("All checked classes have correct serialVersionUID.");
+    }
+
+    private List<Path> findConnectorClassPaths() {
+        try (Stream<Path> paths = Files.walk(Paths.get(".."), 
FileVisitOption.FOLLOW_LINKS)) {
+            return paths.filter(
+                            path -> {
+                                String pathString = path.toString();
+                                return pathString.endsWith(JAVA_FILE_EXTENSION)
+                                        && pathString.contains(CONNECTOR_DIR)
+                                        && 
pathString.contains(JAVA_PATH_FRAGMENT);
+                            })
+                    .collect(Collectors.toList());
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to walk through connector 
directories", e);
+        }
+    }
+
+    /** Populate the classDeclarationMap with all class declarations from the 
given path. */
+    private void populateClassDeclarationMap(Path path) {
+        try {
+            ParseResult<CompilationUnit> parseResult =
+                    JAVA_PARSER.parse(Files.newInputStream(path));
+            parseResult
+                    .getResult()
+                    .ifPresent(
+                            compilationUnit -> {
+                                List<ClassOrInterfaceDeclaration> classes =
+                                        
compilationUnit.findAll(ClassOrInterfaceDeclaration.class);
+                                for (ClassOrInterfaceDeclaration 
classDeclaration : classes) {
+                                    String className =
+                                            
classDeclaration.getFullyQualifiedName().orElse("");
+                                    if (!className.isEmpty()) {
+                                        classDeclarationMap.put(className, 
classDeclaration);
+                                    }
+                                }
+                            });
+        } catch (IOException e) {
+            LOG.warn("Could not parse file: {}", path, e);
+        }
+    }
+
+    /**
+     * Check the class path for classes that implement SeaTunnelSource or 
SeaTunnelSink and verify
+     * they have serialVersionUID.
+     */
+    private void checkClassPath(Path path, List<String> 
missingSerialVersionUID) {
+        try {
+            ParseResult<CompilationUnit> parseResult =
+                    JAVA_PARSER.parse(Files.newInputStream(path));
+            parseResult
+                    .getResult()
+                    .ifPresent(
+                            compilationUnit -> {
+                                List<ClassOrInterfaceDeclaration> classes =
+                                        
compilationUnit.findAll(ClassOrInterfaceDeclaration.class);
+                                for (ClassOrInterfaceDeclaration 
classDeclaration : classes) {
+                                    if 
(implementsSeaTunnelSourceOrSink(classDeclaration)) {
+                                        checkImplementedTypes(
+                                                classDeclaration, 
missingSerialVersionUID);
+                                    }
+                                }
+                            });
+        } catch (IOException e) {
+            LOG.warn("Could not parse file: {}", path, e);
+        }
+    }
+
+    private boolean 
implementsSeaTunnelSourceOrSink(ClassOrInterfaceDeclaration classDeclaration) {
+        return classDeclaration.getImplementedTypes().stream()
+                .anyMatch(
+                        type -> {
+                            String typeName = type.getNameAsString();
+                            return typeName.equals("SeaTunnelSource")
+                                    || typeName.equals("SeaTunnelSink");
+                        });
+    }
+
+    private void checkImplementedTypes(
+            ClassOrInterfaceDeclaration classDeclaration, List<String> 
missingSerialVersionUID) {
+        classDeclaration
+                .getImplementedTypes()
+                .forEach(
+                        implementedType -> {
+                            implementedType
+                                    .getTypeArguments()
+                                    .ifPresent(
+                                            typeArgs -> {
+                                                for (Type typeArg : typeArgs) {
+                                                    if 
(typeArg.isClassOrInterfaceType()) {
+                                                        checkClassType(
+                                                                
typeArg.asClassOrInterfaceType(),
+                                                                
missingSerialVersionUID);
+                                                    }
+                                                }
+                                            });
+                        });
+    }
+
+    private void checkClassType(
+            ClassOrInterfaceType classType, List<String> 
missingSerialVersionUID) {
+
+        try {
+            ResolvedReferenceType resolvedType = 
classType.resolve().asReferenceType();
+            if (resolvedType == null) {
+                return;
+            }
+            if (isSerializable(resolvedType)) {
+                ResolvedReferenceTypeDeclaration typeDeclaration =
+                        resolvedType.getTypeDeclaration().orElse(null);
+                if (typeDeclaration == null) {
+                    return;
+                }
+                String paramTypeName = typeDeclaration.getQualifiedName();
+                if (!checkedClasses.contains(paramTypeName)) {
+                    // Check if the class is abstract and return early if it is
+                    if (isAbstractClass(typeDeclaration)) {
+                        checkedClasses.add(paramTypeName);
+                        return;
+                    }
+
+                    if (!hasSerialVersionUID(typeDeclaration)) {
+                        missingSerialVersionUID.add(paramTypeName);
+                        LOG.warn("Class {} is missing serialVersionUID field", 
paramTypeName);
+                    }
+                    checkedClasses.add(paramTypeName);
+                }
+            }
+        } catch (Exception e) {
+            LOG.warn("Could not resolve type: {} in file: {}", 
classType.getNameAsString(), e);
+        }
+    }
+
+    private boolean isSerializable(ResolvedReferenceType resolvedType) {
+        return resolvedType.getQualifiedName().equals("java.io.Serializable")
+                || resolvedType.getAllAncestors().stream()
+                        .anyMatch(
+                                ancestor ->
+                                        
ancestor.getQualifiedName().equals("java.io.Serializable"));
+    }
+
+    private boolean hasSerialVersionUID(ResolvedReferenceTypeDeclaration 
typeDeclaration) {
+        return typeDeclaration.isInterface()
+                || typeDeclaration.getAllFields().stream()
+                        .anyMatch(field -> 
field.getName().equals("serialVersionUID"));
+    }
+
+    private boolean isAbstractClass(ResolvedReferenceTypeDeclaration 
typeDeclaration) {
+        // Only check classes, not interfaces
+        if (!typeDeclaration.isClass()) {
+            return false;
+        }
+
+        String className = typeDeclaration.getQualifiedName();
+
+        // First check if we have the class declaration in our map
+        ClassOrInterfaceDeclaration classDeclaration = 
classDeclarationMap.get(className);
+        if (classDeclaration != null) {
+            // Directly check if the class is abstract using the declaration
+            return classDeclaration.isAbstract();
+        }
+
+        return false;
+    }
+
+    private String generateErrorMessage(List<String> missingSerialVersionUID) {
+        StringBuilder errorMessage = new StringBuilder();
+        
errorMessage.append("=================================================================\n");
+        errorMessage.append(
+                "Test failed: The following classes are missing 
serialVersionUID fields\n");
+        
errorMessage.append("=================================================================\n");
+        errorMessage
+                .append("A total of ")
+                .append(missingSerialVersionUID.size())
+                .append(" Question:\n\n");
+
+        for (int i = 0; i < missingSerialVersionUID.size(); i++) {
+            errorMessage
+                    .append(i + 1)
+                    .append(". ")
+                    .append(missingSerialVersionUID.get(i))
+                    .append("\n");
+        }
+
+        errorMessage.append(
+                
"\n=================================================================\n");
+        errorMessage.append(
+                "Please add a serialVersionUID field to the above class and 
make sure its value is not -1L, for example:\n");
+        errorMessage.append("private static final long serialVersionUID = 
5967888460683065669L;\n");
+        
errorMessage.append("=================================================================\n");
+        return errorMessage.toString();
+    }
+
+    public static class TestResultLogger implements TestWatcher {
+        @Override
+        public void testSuccessful(ExtensionContext context) {
+            LOG.info("Test successful: {}", context.getDisplayName());
+        }
+
+        @Override
+        public void testFailed(ExtensionContext context, Throwable cause) {
+            LOG.error("Test failed: {}", context.getDisplayName(), cause);
+        }
+    }
+}
diff --git 
a/seatunnel-connectors-v2/connector-amazondynamodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/amazondynamodb/source/AmazonDynamoDBSourceSplit.java
 
b/seatunnel-connectors-v2/connector-amazondynamodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/amazondynamodb/source/AmazonDynamoDBSourceSplit.java
index 08a760998e..825cc3666d 100644
--- 
a/seatunnel-connectors-v2/connector-amazondynamodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/amazondynamodb/source/AmazonDynamoDBSourceSplit.java
+++ 
b/seatunnel-connectors-v2/connector-amazondynamodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/amazondynamodb/source/AmazonDynamoDBSourceSplit.java
@@ -28,6 +28,7 @@ import lombok.Setter;
 @Setter
 public class AmazonDynamoDBSourceSplit implements SourceSplit {
 
+    private static final long serialVersionUID = -5148142613656330674L;
     private Integer splitId;
     private Integer totalSegments;
     private Integer itemCount;
diff --git 
a/seatunnel-connectors-v2/connector-amazondynamodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/amazondynamodb/source/AmazonDynamoDBSourceState.java
 
b/seatunnel-connectors-v2/connector-amazondynamodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/amazondynamodb/source/AmazonDynamoDBSourceState.java
index 5ea15dc34a..2d9ecc6223 100644
--- 
a/seatunnel-connectors-v2/connector-amazondynamodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/amazondynamodb/source/AmazonDynamoDBSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-amazondynamodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/amazondynamodb/source/AmazonDynamoDBSourceState.java
@@ -29,6 +29,7 @@ import java.util.Map;
 @Setter
 @AllArgsConstructor
 public class AmazonDynamoDBSourceState implements Serializable {
+    private static final long serialVersionUID = -8614736648787520123L;
     private boolean shouldEnumerate;
     private Map<Integer, List<AmazonDynamoDBSourceSplit>> pendingSplits;
 }
diff --git 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-tidb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/tidb/source/enumerator/TiDBSourceCheckpointState.java
 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-tidb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/tidb/source/enumerator/TiDBSourceCheckpointState.java
index 0691c651ee..6869f73ea8 100644
--- 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-tidb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/tidb/source/enumerator/TiDBSourceCheckpointState.java
+++ 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-tidb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/tidb/source/enumerator/TiDBSourceCheckpointState.java
@@ -32,6 +32,7 @@ import java.util.Map;
 @AllArgsConstructor
 @ToString
 public class TiDBSourceCheckpointState implements Serializable {
+    private static final long serialVersionUID = 6292978509042158791L;
     private boolean shouldEnumerate;
     private Map<Integer, TiDBSourceSplit> pendingSplit;
 }
diff --git 
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKAggCommitInfo.java
 
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKAggCommitInfo.java
index 32c40e22b6..cb3a78967c 100644
--- 
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKAggCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKAggCommitInfo.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.clickhouse.state;
 
 import java.io.Serializable;
 
-public class CKAggCommitInfo implements Serializable {}
+public class CKAggCommitInfo implements Serializable {
+    private static final long serialVersionUID = 7725191558817348241L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKCommitInfo.java
 
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKCommitInfo.java
index 6499fc04f5..e17adaf6af 100644
--- 
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKCommitInfo.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.clickhouse.state;
 
 import java.io.Serializable;
 
-public class CKCommitInfo implements Serializable {}
+public class CKCommitInfo implements Serializable {
+    private static final long serialVersionUID = -3467325029403882141L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKFileAggCommitInfo.java
 
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKFileAggCommitInfo.java
index de1dae43d3..2ce447b3b7 100644
--- 
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKFileAggCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKFileAggCommitInfo.java
@@ -30,5 +30,6 @@ import java.util.Map;
 @AllArgsConstructor
 public class CKFileAggCommitInfo implements Serializable {
 
+    private static final long serialVersionUID = 1815170158201953697L;
     private Map<Shard, List<String>> detachedFiles;
 }
diff --git 
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKFileCommitInfo.java
 
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKFileCommitInfo.java
index 6209b5c8bb..aae4875f51 100644
--- 
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKFileCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/CKFileCommitInfo.java
@@ -30,5 +30,6 @@ import java.util.Map;
 @AllArgsConstructor
 public class CKFileCommitInfo implements Serializable {
 
+    private static final long serialVersionUID = 5967888460683065639L;
     private Map<Shard, List<String>> detachedFiles;
 }
diff --git 
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/ClickhouseSinkState.java
 
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/ClickhouseSinkState.java
index 4f26d85084..917d7e7afa 100644
--- 
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/ClickhouseSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/state/ClickhouseSinkState.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.clickhouse.state;
 
 import java.io.Serializable;
 
-public class ClickhouseSinkState implements Serializable {}
+public class ClickhouseSinkState implements Serializable {
+    private static final long serialVersionUID = -2781233847929140233L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/SingleSplit.java
 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/SingleSplit.java
index 02951f4672..6a0fea24fd 100644
--- 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/SingleSplit.java
+++ 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/SingleSplit.java
@@ -20,6 +20,7 @@ package 
org.apache.seatunnel.connectors.seatunnel.common.source;
 import org.apache.seatunnel.api.source.SourceSplit;
 
 public class SingleSplit implements SourceSplit {
+    private static final long serialVersionUID = -8280083360971974402L;
     private final byte[] state;
 
     public SingleSplit(byte[] state) {
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/SingleSplitEnumeratorState.java
 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/SingleSplitEnumeratorState.java
index ae28f7d062..37968b71c3 100644
--- 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/SingleSplitEnumeratorState.java
+++ 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/SingleSplitEnumeratorState.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.common.source;
 
 import java.io.Serializable;
 
-public class SingleSplitEnumeratorState implements Serializable {}
+public class SingleSplitEnumeratorState implements Serializable {
+    private static final long serialVersionUID = -2700283917471267033L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/sink/committer/DorisCommitInfo.java
 
b/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/sink/committer/DorisCommitInfo.java
index 8682959a56..e676fd31ab 100644
--- 
a/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/sink/committer/DorisCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/sink/committer/DorisCommitInfo.java
@@ -29,6 +29,7 @@ import java.io.Serializable;
 @ToString
 @EqualsAndHashCode
 public class DorisCommitInfo implements Serializable {
+    private static final long serialVersionUID = -3581686409786064970L;
     private final String hostPort;
     private final String db;
     private final long txbID;
diff --git 
a/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/sink/writer/DorisSinkState.java
 
b/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/sink/writer/DorisSinkState.java
index c3c5725b32..5eec3bcee4 100644
--- 
a/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/sink/writer/DorisSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/sink/writer/DorisSinkState.java
@@ -29,6 +29,7 @@ import java.io.Serializable;
 @ToString
 @EqualsAndHashCode
 public class DorisSinkState implements Serializable {
+    private static final long serialVersionUID = 8154853734116737277L;
     private final String labelPrefix;
     private final long checkpointId;
 
diff --git 
a/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/source/EasysearchSourceState.java
 
b/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/source/EasysearchSourceState.java
index 78fa9c0edc..4039ad2947 100644
--- 
a/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/source/EasysearchSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/source/EasysearchSourceState.java
@@ -27,6 +27,7 @@ import java.util.Map;
 @AllArgsConstructor
 @Getter
 public class EasysearchSourceState implements Serializable {
+    private static final long serialVersionUID = 5807217062829745160L;
     private boolean shouldEnumerate;
     private Map<Integer, List<EasysearchSourceSplit>> pendingSplit;
 }
diff --git 
a/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/state/EasysearchAggregatedCommitInfo.java
 
b/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/state/EasysearchAggregatedCommitInfo.java
index 1617520127..4d39772e3f 100644
--- 
a/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/state/EasysearchAggregatedCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/state/EasysearchAggregatedCommitInfo.java
@@ -20,4 +20,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.easysearch.state;
 import java.io.Serializable;
 
 /** Todo: we need to add a default */
-public class EasysearchAggregatedCommitInfo implements Serializable {}
+public class EasysearchAggregatedCommitInfo implements Serializable {
+    private static final long serialVersionUID = 7704793431405281055L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/state/EasysearchCommitInfo.java
 
b/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/state/EasysearchCommitInfo.java
index 9d524c0869..36b8ac95f7 100644
--- 
a/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/state/EasysearchCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/state/EasysearchCommitInfo.java
@@ -27,6 +27,7 @@ import java.util.Properties;
 @AllArgsConstructor
 public class EasysearchCommitInfo implements Serializable {
 
+    private static final long serialVersionUID = 3813827156739086365L;
     private final String transactionId;
     private final Properties kafkaProperties;
     private final long producerId;
diff --git 
a/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/state/EasysearchSinkState.java
 
b/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/state/EasysearchSinkState.java
index 9863b84835..caa5079251 100644
--- 
a/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/state/EasysearchSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/state/EasysearchSinkState.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.easysearch.state;
 
 import java.io.Serializable;
 
-public class EasysearchSinkState implements Serializable {}
+public class EasysearchSinkState implements Serializable {
+    private static final long serialVersionUID = -5729872341182627418L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/source/ElasticsearchSourceState.java
 
b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/source/ElasticsearchSourceState.java
index dda0a9eea8..2c317e2a39 100644
--- 
a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/source/ElasticsearchSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/source/ElasticsearchSourceState.java
@@ -27,6 +27,7 @@ import java.util.Map;
 @AllArgsConstructor
 @Getter
 public class ElasticsearchSourceState implements Serializable {
+    private static final long serialVersionUID = 3883532547289760508L;
     private boolean shouldEnumerate;
     private Map<Integer, List<ElasticsearchSourceSplit>> pendingSplit;
 }
diff --git 
a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/state/ElasticsearchAggregatedCommitInfo.java
 
b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/state/ElasticsearchAggregatedCommitInfo.java
index f5875a9728..aeaf87c2cb 100644
--- 
a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/state/ElasticsearchAggregatedCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/state/ElasticsearchAggregatedCommitInfo.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.elasticsearch.state;
 
 import java.io.Serializable;
 
-public class ElasticsearchAggregatedCommitInfo implements Serializable {}
+public class ElasticsearchAggregatedCommitInfo implements Serializable {
+    private static final long serialVersionUID = 7556786324629150152L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/state/ElasticsearchCommitInfo.java
 
b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/state/ElasticsearchCommitInfo.java
index 68cb9b2a3e..b8acef0594 100644
--- 
a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/state/ElasticsearchCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/state/ElasticsearchCommitInfo.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.elasticsearch.state;
 
 import java.io.Serializable;
 
-public class ElasticsearchCommitInfo implements Serializable {}
+public class ElasticsearchCommitInfo implements Serializable {
+    private static final long serialVersionUID = 4512769768158989809L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/state/ElasticsearchSinkState.java
 
b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/state/ElasticsearchSinkState.java
index 29b95330ab..6b3a16a9a2 100644
--- 
a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/state/ElasticsearchSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/state/ElasticsearchSinkState.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.elasticsearch.state;
 
 import java.io.Serializable;
 
-public class ElasticsearchSinkState implements Serializable {}
+public class ElasticsearchSinkState implements Serializable {
+    private static final long serialVersionUID = -3180616525364355053L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-fake/src/main/java/org/apache/seatunnel/connectors/seatunnel/fake/source/FakeSourceSplit.java
 
b/seatunnel-connectors-v2/connector-fake/src/main/java/org/apache/seatunnel/connectors/seatunnel/fake/source/FakeSourceSplit.java
index 796b6423f5..2a7362abd2 100644
--- 
a/seatunnel-connectors-v2/connector-fake/src/main/java/org/apache/seatunnel/connectors/seatunnel/fake/source/FakeSourceSplit.java
+++ 
b/seatunnel-connectors-v2/connector-fake/src/main/java/org/apache/seatunnel/connectors/seatunnel/fake/source/FakeSourceSplit.java
@@ -26,6 +26,7 @@ import lombok.Data;
 @AllArgsConstructor
 public class FakeSourceSplit implements SourceSplit {
 
+    private static final long serialVersionUID = -3321891887156360959L;
     private String tableId;
 
     private int splitId;
diff --git 
a/seatunnel-connectors-v2/connector-fake/src/main/java/org/apache/seatunnel/connectors/seatunnel/fake/state/FakeSourceState.java
 
b/seatunnel-connectors-v2/connector-fake/src/main/java/org/apache/seatunnel/connectors/seatunnel/fake/state/FakeSourceState.java
index 93a338e11c..6394d063c7 100644
--- 
a/seatunnel-connectors-v2/connector-fake/src/main/java/org/apache/seatunnel/connectors/seatunnel/fake/state/FakeSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-fake/src/main/java/org/apache/seatunnel/connectors/seatunnel/fake/state/FakeSourceState.java
@@ -28,5 +28,6 @@ import java.util.Set;
 @Getter
 @AllArgsConstructor
 public class FakeSourceState implements Serializable {
+    private static final long serialVersionUID = 3518027332238448485L;
     private final Set<FakeSourceSplit> assignedSplits;
 }
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/commit/FileAggregatedCommitInfo.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/commit/FileAggregatedCommitInfo.java
index 5ca3b30fad..f17d35352c 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/commit/FileAggregatedCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/commit/FileAggregatedCommitInfo.java
@@ -27,6 +27,7 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 public class FileAggregatedCommitInfo implements Serializable {
+    private static final long serialVersionUID = 8035568366654544907L;
     /**
      * Storage the commit info in map.
      *
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/commit/FileCommitInfo.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/commit/FileCommitInfo.java
index 27e74ff0a8..eab71f233f 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/commit/FileCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/commit/FileCommitInfo.java
@@ -27,6 +27,7 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 public class FileCommitInfo implements Serializable {
+    private static final long serialVersionUID = 7327659196051587339L;
     /**
      * Storage the commit info in map.
      *
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/state/FileSinkState.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/state/FileSinkState.java
index 34ca13625f..bb0295090f 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/state/FileSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/state/FileSinkState.java
@@ -27,6 +27,7 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 public class FileSinkState implements Serializable {
+    private static final long serialVersionUID = -8757454855081836294L;
     private final String transactionId;
     private final String uuidPrefix;
     private final Long checkpointId;
diff --git 
a/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/source/HbaseSourceSplit.java
 
b/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/source/HbaseSourceSplit.java
index 1d38ddd116..143c14c7a2 100644
--- 
a/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/source/HbaseSourceSplit.java
+++ 
b/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/source/HbaseSourceSplit.java
@@ -22,6 +22,7 @@ import org.apache.seatunnel.api.source.SourceSplit;
 
 public class HbaseSourceSplit implements SourceSplit {
     public static final String HBASE_SOURCE_SPLIT_PREFIX = 
"hbase_source_split_";
+    private static final long serialVersionUID = 34191409620359295L;
     private String splitId;
     private byte[] startRow;
     private byte[] endRow;
diff --git 
a/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/state/HbaseAggregatedCommitInfo.java
 
b/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/state/HbaseAggregatedCommitInfo.java
index c1996dc057..1011047c57 100644
--- 
a/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/state/HbaseAggregatedCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/state/HbaseAggregatedCommitInfo.java
@@ -19,4 +19,6 @@ package org.apache.seatunnel.connectors.seatunnel.hbase.state;
 
 import java.io.Serializable;
 
-public class HbaseAggregatedCommitInfo implements Serializable {}
+public class HbaseAggregatedCommitInfo implements Serializable {
+    private static final long serialVersionUID = -3046395878305829153L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/state/HbaseCommitInfo.java
 
b/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/state/HbaseCommitInfo.java
index 39999ceddc..dd92682211 100644
--- 
a/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/state/HbaseCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/state/HbaseCommitInfo.java
@@ -19,4 +19,6 @@ package org.apache.seatunnel.connectors.seatunnel.hbase.state;
 
 import java.io.Serializable;
 
-public class HbaseCommitInfo implements Serializable {}
+public class HbaseCommitInfo implements Serializable {
+    private static final long serialVersionUID = -5890085491808138401L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/state/HbaseSinkState.java
 
b/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/state/HbaseSinkState.java
index 6e1f068cf6..bd285be7bc 100644
--- 
a/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/state/HbaseSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/state/HbaseSinkState.java
@@ -19,4 +19,6 @@ package org.apache.seatunnel.connectors.seatunnel.hbase.state;
 
 import java.io.Serializable;
 
-public class HbaseSinkState implements Serializable {}
+public class HbaseSinkState implements Serializable {
+    private static final long serialVersionUID = 4863333264891339699L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/sink/state/HudiAggregatedCommitInfo.java
 
b/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/sink/state/HudiAggregatedCommitInfo.java
index 065fed72ad..30471071ec 100644
--- 
a/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/sink/state/HudiAggregatedCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/sink/state/HudiAggregatedCommitInfo.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.hudi.sink.state;
 
 import java.io.Serializable;
 
-public class HudiAggregatedCommitInfo implements Serializable {}
+public class HudiAggregatedCommitInfo implements Serializable {
+    private static final long serialVersionUID = -5342563020191900441L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/sink/state/HudiCommitInfo.java
 
b/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/sink/state/HudiCommitInfo.java
index 808cc4d942..db83470caa 100644
--- 
a/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/sink/state/HudiCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/sink/state/HudiCommitInfo.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.hudi.sink.state;
 
 import java.io.Serializable;
 
-public class HudiCommitInfo implements Serializable {}
+public class HudiCommitInfo implements Serializable {
+    private static final long serialVersionUID = 981370692566509995L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/sink/state/HudiSinkState.java
 
b/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/sink/state/HudiSinkState.java
index 7983dd99e9..daaeab8c1c 100644
--- 
a/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/sink/state/HudiSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/sink/state/HudiSinkState.java
@@ -26,6 +26,7 @@ import java.io.Serializable;
 @AllArgsConstructor
 public class HudiSinkState implements Serializable {
 
+    private static final long serialVersionUID = 1531078306940645042L;
     private long checkpointId;
 
     private HudiCommitInfo hudiCommitInfo;
diff --git 
a/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/commit/IcebergAggregatedCommitInfo.java
 
b/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/commit/IcebergAggregatedCommitInfo.java
index 5ba75d3d36..5a43c73f61 100644
--- 
a/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/commit/IcebergAggregatedCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/commit/IcebergAggregatedCommitInfo.java
@@ -26,5 +26,6 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 public class IcebergAggregatedCommitInfo implements Serializable {
+    private static final long serialVersionUID = -8652655689660607409L;
     List<IcebergCommitInfo> commitInfos;
 }
diff --git 
a/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/commit/IcebergCommitInfo.java
 
b/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/commit/IcebergCommitInfo.java
index 1b4affc0b9..d5196d279a 100644
--- 
a/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/commit/IcebergCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/commit/IcebergCommitInfo.java
@@ -28,5 +28,6 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 public class IcebergCommitInfo implements Serializable {
+    private static final long serialVersionUID = -3293882102479719936L;
     private List<WriteResult> results;
 }
diff --git 
a/seatunnel-connectors-v2/connector-influxdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/influxdb/source/InfluxDBSourceSplit.java
 
b/seatunnel-connectors-v2/connector-influxdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/influxdb/source/InfluxDBSourceSplit.java
index 50d9a51e29..79c21d1909 100644
--- 
a/seatunnel-connectors-v2/connector-influxdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/influxdb/source/InfluxDBSourceSplit.java
+++ 
b/seatunnel-connectors-v2/connector-influxdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/influxdb/source/InfluxDBSourceSplit.java
@@ -20,6 +20,7 @@ package 
org.apache.seatunnel.connectors.seatunnel.influxdb.source;
 import org.apache.seatunnel.api.source.SourceSplit;
 
 public class InfluxDBSourceSplit implements SourceSplit {
+    private static final long serialVersionUID = 7936658588681424786L;
     private final String splitId;
 
     private final String query;
diff --git 
a/seatunnel-connectors-v2/connector-influxdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/influxdb/state/InfluxDBSourceState.java
 
b/seatunnel-connectors-v2/connector-influxdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/influxdb/state/InfluxDBSourceState.java
index 3d9852bba8..29b0dc2317 100644
--- 
a/seatunnel-connectors-v2/connector-influxdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/influxdb/state/InfluxDBSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-influxdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/influxdb/state/InfluxDBSourceState.java
@@ -30,6 +30,7 @@ import java.util.Map;
 @Getter
 public class InfluxDBSourceState implements Serializable {
 
+    private static final long serialVersionUID = 7132198105704653582L;
     private boolean shouldEnumerate;
     private Map<Integer, List<InfluxDBSourceSplit>> pendingSplit;
 }
diff --git 
a/seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/state/IoTDBSourceState.java
 
b/seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/state/IoTDBSourceState.java
index b6588c7dc7..1d8fdc39bd 100644
--- 
a/seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/state/IoTDBSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/state/IoTDBSourceState.java
@@ -30,6 +30,7 @@ import java.util.Map;
 @Getter
 public class IoTDBSourceState implements Serializable {
 
+    private static final long serialVersionUID = 7142773921678153583L;
     private boolean shouldEnumerate;
     private Map<Integer, List<IoTDBSourceSplit>> pendingSplit;
 }
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/source/JdbcSourceSplit.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/source/JdbcSourceSplit.java
index e5b11ba00b..51469f011c 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/source/JdbcSourceSplit.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/source/JdbcSourceSplit.java
@@ -29,6 +29,7 @@ import lombok.ToString;
 @ToString
 @AllArgsConstructor
 public class JdbcSourceSplit implements SourceSplit {
+    private static final long serialVersionUID = -815542654355310611L;
     private final TablePath tablePath;
     private final String splitId;
     private final String splitQuery;
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/JdbcAggregatedCommitInfo.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/JdbcAggregatedCommitInfo.java
index e04a06dc1f..5d83afd34f 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/JdbcAggregatedCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/JdbcAggregatedCommitInfo.java
@@ -26,5 +26,6 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 public class JdbcAggregatedCommitInfo implements Serializable {
+    private static final long serialVersionUID = 7289719797740270727L;
     private final List<XidInfo> xidInfoList;
 }
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/JdbcSinkState.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/JdbcSinkState.java
index d3261e8c16..264ae4ba09 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/JdbcSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/JdbcSinkState.java
@@ -27,5 +27,6 @@ import java.io.Serializable;
 @Data
 @AllArgsConstructor
 public class JdbcSinkState implements Serializable {
+    private static final long serialVersionUID = 4602940529569595559L;
     private final Xid xid;
 }
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/JdbcSourceState.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/JdbcSourceState.java
index f36ac6cbac..7998b964b6 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/JdbcSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/JdbcSourceState.java
@@ -30,6 +30,7 @@ import java.util.Map;
 @Data
 @AllArgsConstructor
 public class JdbcSourceState implements Serializable {
+    private static final long serialVersionUID = -6441009212721284346L;
     private List<TablePath> pendingTables;
     private Map<Integer, List<JdbcSourceSplit>> pendingSplits;
 }
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/XidInfo.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/XidInfo.java
index 80cbe63ff5..df8c074280 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/XidInfo.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/state/XidInfo.java
@@ -28,6 +28,7 @@ import java.io.Serializable;
 @AllArgsConstructor
 public class XidInfo implements Serializable {
 
+    private static final long serialVersionUID = 5013137011761048462L;
     final Xid xid;
     final int attempts;
 
diff --git 
a/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/source/KafkaSourceSplit.java
 
b/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/source/KafkaSourceSplit.java
index 8f5bc5f2d3..9f8ed4a063 100644
--- 
a/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/source/KafkaSourceSplit.java
+++ 
b/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/source/KafkaSourceSplit.java
@@ -29,6 +29,7 @@ import java.util.Objects;
 
 public class KafkaSourceSplit implements SourceSplit {
 
+    private static final long serialVersionUID = 3999766278482118380L;
     private TablePath tablePath;
     private TopicPartition topicPartition;
     private long startOffset = -1L;
diff --git 
a/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaAggregatedCommitInfo.java
 
b/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaAggregatedCommitInfo.java
index 9ae5e88ba5..e43d5a351a 100644
--- 
a/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaAggregatedCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaAggregatedCommitInfo.java
@@ -26,5 +26,6 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 public class KafkaAggregatedCommitInfo implements Serializable {
+    private static final long serialVersionUID = 1354822426091456946L;
     List<KafkaCommitInfo> commitInfos;
 }
diff --git 
a/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaCommitInfo.java
 
b/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaCommitInfo.java
index 82ef8af4d3..95f33eed10 100644
--- 
a/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaCommitInfo.java
@@ -27,6 +27,7 @@ import java.util.Properties;
 @AllArgsConstructor
 public class KafkaCommitInfo implements Serializable {
 
+    private static final long serialVersionUID = 6744911880963367089L;
     private final String transactionId;
     private final Properties kafkaProperties;
     private final long producerId;
diff --git 
a/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaSinkState.java
 
b/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaSinkState.java
index 48ea751c5d..2c3ef65992 100644
--- 
a/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaSinkState.java
@@ -27,6 +27,7 @@ import java.util.Properties;
 @AllArgsConstructor
 public class KafkaSinkState implements Serializable {
 
+    private static final long serialVersionUID = 2869157152556145465L;
     private final String transactionId;
     private final String transactionIdPrefix;
     private final long checkpointId;
diff --git 
a/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaSourceState.java
 
b/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaSourceState.java
index e6ba535b32..2b84d2a3c6 100644
--- 
a/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaSourceState.java
@@ -24,6 +24,7 @@ import java.util.Set;
 
 public class KafkaSourceState implements Serializable {
 
+    private static final long serialVersionUID = 2554717972821706108L;
     private Set<KafkaSourceSplit> assignedSplit;
 
     public KafkaSourceState(Set<KafkaSourceSplit> assignedSplit) {
diff --git 
a/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduAggregatedCommitInfo.java
 
b/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduAggregatedCommitInfo.java
index 6abdbf8150..98b21d9f78 100644
--- 
a/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduAggregatedCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduAggregatedCommitInfo.java
@@ -19,4 +19,6 @@ package org.apache.seatunnel.connectors.seatunnel.kudu.state;
 
 import java.io.Serializable;
 
-public class KuduAggregatedCommitInfo implements Serializable {}
+public class KuduAggregatedCommitInfo implements Serializable {
+    private static final long serialVersionUID = 1942126095088508489L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduCommitInfo.java
 
b/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduCommitInfo.java
index 695fb2efc9..28de87f6b2 100644
--- 
a/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduCommitInfo.java
@@ -19,4 +19,6 @@ package org.apache.seatunnel.connectors.seatunnel.kudu.state;
 
 import java.io.Serializable;
 
-public class KuduCommitInfo implements Serializable {}
+public class KuduCommitInfo implements Serializable {
+    private static final long serialVersionUID = 6538741084534722982L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduSinkState.java
 
b/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduSinkState.java
index e229df86d7..2be623e03e 100644
--- 
a/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduSinkState.java
@@ -19,4 +19,6 @@ package org.apache.seatunnel.connectors.seatunnel.kudu.state;
 
 import java.io.Serializable;
 
-public class KuduSinkState implements Serializable {}
+public class KuduSinkState implements Serializable {
+    private static final long serialVersionUID = 8724196975203566877L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduSourceState.java
 
b/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduSourceState.java
index e507bb49f6..95cd02dd90 100644
--- 
a/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/state/KuduSourceState.java
@@ -30,6 +30,7 @@ import java.util.Map;
 @AllArgsConstructor
 @Getter
 public class KuduSourceState implements Serializable {
+    private static final long serialVersionUID = -3141157457869831037L;
     private List<TablePath> pendingTables;
     private Map<Integer, List<KuduSourceSplit>> pendingSplits;
 }
diff --git 
a/seatunnel-connectors-v2/connector-maxcompute/src/main/java/org/apache/seatunnel/connectors/seatunnel/maxcompute/source/MaxcomputeSourceSplit.java
 
b/seatunnel-connectors-v2/connector-maxcompute/src/main/java/org/apache/seatunnel/connectors/seatunnel/maxcompute/source/MaxcomputeSourceSplit.java
index 6a77c8892f..13d1225608 100644
--- 
a/seatunnel-connectors-v2/connector-maxcompute/src/main/java/org/apache/seatunnel/connectors/seatunnel/maxcompute/source/MaxcomputeSourceSplit.java
+++ 
b/seatunnel-connectors-v2/connector-maxcompute/src/main/java/org/apache/seatunnel/connectors/seatunnel/maxcompute/source/MaxcomputeSourceSplit.java
@@ -28,6 +28,7 @@ import lombok.Setter;
 @Setter
 @EqualsAndHashCode
 public class MaxcomputeSourceSplit implements SourceSplit {
+    private static final long serialVersionUID = 573028372948731375L;
     private final long rowStart;
     private final long rowNum;
     private final TablePath tablePath;
diff --git 
a/seatunnel-connectors-v2/connector-maxcompute/src/main/java/org/apache/seatunnel/connectors/seatunnel/maxcompute/source/MaxcomputeSourceState.java
 
b/seatunnel-connectors-v2/connector-maxcompute/src/main/java/org/apache/seatunnel/connectors/seatunnel/maxcompute/source/MaxcomputeSourceState.java
index 1abcb000ca..2339d1b353 100644
--- 
a/seatunnel-connectors-v2/connector-maxcompute/src/main/java/org/apache/seatunnel/connectors/seatunnel/maxcompute/source/MaxcomputeSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-maxcompute/src/main/java/org/apache/seatunnel/connectors/seatunnel/maxcompute/source/MaxcomputeSourceState.java
@@ -21,6 +21,7 @@ import java.io.Serializable;
 import java.util.Set;
 
 public class MaxcomputeSourceState implements Serializable {
+    private static final long serialVersionUID = 3097170139569235106L;
     private Set<MaxcomputeSourceSplit> assignedSplit;
 
     public MaxcomputeSourceState(Set<MaxcomputeSourceSplit> assignedSplit) {
diff --git 
a/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/source/MilvusSourceSplit.java
 
b/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/source/MilvusSourceSplit.java
index d448242d9a..3679e9a02f 100644
--- 
a/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/source/MilvusSourceSplit.java
+++ 
b/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/source/MilvusSourceSplit.java
@@ -27,6 +27,7 @@ import lombok.Data;
 @Builder
 public class MilvusSourceSplit implements SourceSplit {
 
+    private static final long serialVersionUID = 128331660165765343L;
     private TablePath tablePath;
     private String splitId;
     private String partitionName;
diff --git 
a/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/source/MilvusSourceState.java
 
b/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/source/MilvusSourceState.java
index 7b6c2e0672..8af6bc41d1 100644
--- 
a/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/source/MilvusSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/source/MilvusSourceState.java
@@ -29,6 +29,7 @@ import java.util.Map;
 @Data
 @AllArgsConstructor
 public class MilvusSourceState implements Serializable {
+    private static final long serialVersionUID = 1718378968826165653L;
     private List<TablePath> pendingTables;
     private Map<Integer, List<MilvusSourceSplit>> pendingSplits;
 }
diff --git 
a/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/state/MilvusAggregatedCommitInfo.java
 
b/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/state/MilvusAggregatedCommitInfo.java
index d4bc422d9b..313c5defcc 100644
--- 
a/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/state/MilvusAggregatedCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/state/MilvusAggregatedCommitInfo.java
@@ -26,5 +26,6 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 public class MilvusAggregatedCommitInfo implements Serializable {
+    private static final long serialVersionUID = 4363355126863163926L;
     List<MilvusCommitInfo> commitInfos;
 }
diff --git 
a/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/state/MilvusCommitInfo.java
 
b/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/state/MilvusCommitInfo.java
index f6887ffa06..c12024901e 100644
--- 
a/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/state/MilvusCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/state/MilvusCommitInfo.java
@@ -24,4 +24,6 @@ import java.io.Serializable;
 
 @Data
 @AllArgsConstructor
-public class MilvusCommitInfo implements Serializable {}
+public class MilvusCommitInfo implements Serializable {
+    private static final long serialVersionUID = 3466351676745438435L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/state/MilvusSinkState.java
 
b/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/state/MilvusSinkState.java
index 3d8ff62b1d..16d059f7be 100644
--- 
a/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/state/MilvusSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/state/MilvusSinkState.java
@@ -26,4 +26,6 @@ import java.io.Serializable;
 @Data
 @SuperBuilder
 @AllArgsConstructor
-public class MilvusSinkState implements Serializable {}
+public class MilvusSinkState implements Serializable {
+    private static final long serialVersionUID = -6605873999971307109L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/sink/state/DocumentBulk.java
 
b/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/sink/state/DocumentBulk.java
index 72a3d10538..83c871903b 100644
--- 
a/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/sink/state/DocumentBulk.java
+++ 
b/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/sink/state/DocumentBulk.java
@@ -37,6 +37,7 @@ import java.util.List;
 public class DocumentBulk implements Serializable {
 
     public static final int BUFFER_SIZE = 1024;
+    private static final long serialVersionUID = 7203410284346755522L;
 
     private final List<BsonDocument> bufferedDocuments;
 
diff --git 
a/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/sink/state/MongodbAggregatedCommitInfo.java
 
b/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/sink/state/MongodbAggregatedCommitInfo.java
index 6b97d616af..93ee00c515 100644
--- 
a/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/sink/state/MongodbAggregatedCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/sink/state/MongodbAggregatedCommitInfo.java
@@ -26,5 +26,6 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 public class MongodbAggregatedCommitInfo implements Serializable {
+    private static final long serialVersionUID = 2347040237946273020L;
     List<MongodbCommitInfo> commitInfos;
 }
diff --git 
a/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/sink/state/MongodbCommitInfo.java
 
b/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/sink/state/MongodbCommitInfo.java
index 052cd4c5a8..4cf7d8fd5d 100644
--- 
a/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/sink/state/MongodbCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/sink/state/MongodbCommitInfo.java
@@ -26,5 +26,6 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 public class MongodbCommitInfo implements Serializable {
+    private static final long serialVersionUID = -8437379022903705979L;
     List<DocumentBulk> documentBulks;
 }
diff --git 
a/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/source/split/MongoSplit.java
 
b/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/source/split/MongoSplit.java
index ba029f1dcb..83b53dfd30 100644
--- 
a/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/source/split/MongoSplit.java
+++ 
b/seatunnel-connectors-v2/connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/source/split/MongoSplit.java
@@ -29,6 +29,7 @@ import lombok.Getter;
 @AllArgsConstructor
 public class MongoSplit implements SourceSplit {
 
+    private static final long serialVersionUID = 6349181541535290370L;
     private final String splitId;
 
     private final BsonDocument query;
diff --git 
a/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/source/enumerator/PulsarSplitEnumeratorState.java
 
b/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/source/enumerator/PulsarSplitEnumeratorState.java
index b000da9fb4..31a911056c 100644
--- 
a/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/source/enumerator/PulsarSplitEnumeratorState.java
+++ 
b/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/source/enumerator/PulsarSplitEnumeratorState.java
@@ -24,6 +24,7 @@ import java.io.Serializable;
 import java.util.Set;
 
 public class PulsarSplitEnumeratorState implements Serializable {
+    private static final long serialVersionUID = 2300561232002247799L;
     private final Set<TopicPartition> assignedPartitions;
 
     PulsarSplitEnumeratorState(Set<TopicPartition> assignedPartitions) {
diff --git 
a/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/source/split/PulsarPartitionSplit.java
 
b/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/source/split/PulsarPartitionSplit.java
index 4ea0b5c46a..122d130f70 100644
--- 
a/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/source/split/PulsarPartitionSplit.java
+++ 
b/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/source/split/PulsarPartitionSplit.java
@@ -29,6 +29,7 @@ import java.util.Objects;
 
 public class PulsarPartitionSplit implements SourceSplit {
 
+    private static final long serialVersionUID = 3261816890422404491L;
     private final TopicPartition partition;
 
     private final StopCursor stopCursor;
diff --git 
a/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/state/PulsarAggregatedCommitInfo.java
 
b/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/state/PulsarAggregatedCommitInfo.java
index bb75197248..000ce9a251 100644
--- 
a/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/state/PulsarAggregatedCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/state/PulsarAggregatedCommitInfo.java
@@ -26,5 +26,6 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 public class PulsarAggregatedCommitInfo implements Serializable {
+    private static final long serialVersionUID = -1365922376470598498L;
     List<PulsarCommitInfo> commitInfos;
 }
diff --git 
a/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/state/PulsarCommitInfo.java
 
b/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/state/PulsarCommitInfo.java
index fc54308a33..a464cebd19 100644
--- 
a/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/state/PulsarCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/state/PulsarCommitInfo.java
@@ -28,6 +28,7 @@ import java.io.Serializable;
 @AllArgsConstructor
 public class PulsarCommitInfo implements Serializable {
 
+    private static final long serialVersionUID = -9211914520132746418L;
     /** The transaction id. */
     private final TxnID txnID;
 }
diff --git 
a/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/state/PulsarSinkState.java
 
b/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/state/PulsarSinkState.java
index a5aabebb84..1ad36ed604 100644
--- 
a/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/state/PulsarSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/state/PulsarSinkState.java
@@ -28,6 +28,7 @@ import java.io.Serializable;
 @AllArgsConstructor
 public class PulsarSinkState implements Serializable {
 
+    private static final long serialVersionUID = -1507893469255968322L;
     /** The transaction id. */
     private final TxnID txnID;
 }
diff --git 
a/seatunnel-connectors-v2/connector-rabbitmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rabbitmq/split/RabbitmqSplit.java
 
b/seatunnel-connectors-v2/connector-rabbitmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rabbitmq/split/RabbitmqSplit.java
index 70031aa667..6ea4ce3939 100644
--- 
a/seatunnel-connectors-v2/connector-rabbitmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rabbitmq/split/RabbitmqSplit.java
+++ 
b/seatunnel-connectors-v2/connector-rabbitmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rabbitmq/split/RabbitmqSplit.java
@@ -30,6 +30,7 @@ import java.util.Set;
 @Setter
 @AllArgsConstructor
 public class RabbitmqSplit implements SourceSplit {
+    private static final long serialVersionUID = -678845022239224163L;
     private List<Long> deliveryTags;
     private Set<String> correlationIds;
 
diff --git 
a/seatunnel-connectors-v2/connector-rabbitmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rabbitmq/split/RabbitmqSplitEnumeratorState.java
 
b/seatunnel-connectors-v2/connector-rabbitmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rabbitmq/split/RabbitmqSplitEnumeratorState.java
index 01857265ca..2066a617d5 100644
--- 
a/seatunnel-connectors-v2/connector-rabbitmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rabbitmq/split/RabbitmqSplitEnumeratorState.java
+++ 
b/seatunnel-connectors-v2/connector-rabbitmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rabbitmq/split/RabbitmqSplitEnumeratorState.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.rabbitmq.split;
 
 import java.io.Serializable;
 
-public class RabbitmqSplitEnumeratorState implements Serializable {}
+public class RabbitmqSplitEnumeratorState implements Serializable {
+    private static final long serialVersionUID = 3490818116676796863L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-rocketmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rocketmq/source/RocketMqSourceSplit.java
 
b/seatunnel-connectors-v2/connector-rocketmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rocketmq/source/RocketMqSourceSplit.java
index 90fa136c5a..b37a86acb8 100644
--- 
a/seatunnel-connectors-v2/connector-rocketmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rocketmq/source/RocketMqSourceSplit.java
+++ 
b/seatunnel-connectors-v2/connector-rocketmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rocketmq/source/RocketMqSourceSplit.java
@@ -23,6 +23,7 @@ import org.apache.rocketmq.common.message.MessageQueue;
 
 /** define rocketmq source split */
 public class RocketMqSourceSplit implements SourceSplit {
+    private static final long serialVersionUID = -8036209560700452001L;
     private MessageQueue messageQueue;
     private long startOffset = -1L;
     private long endOffset = -1L;
diff --git 
a/seatunnel-connectors-v2/connector-rocketmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rocketmq/source/RocketMqSourceState.java
 
b/seatunnel-connectors-v2/connector-rocketmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rocketmq/source/RocketMqSourceState.java
index a3d923757d..e976e878a1 100644
--- 
a/seatunnel-connectors-v2/connector-rocketmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rocketmq/source/RocketMqSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-rocketmq/src/main/java/org/apache/seatunnel/connectors/seatunnel/rocketmq/source/RocketMqSourceState.java
@@ -22,6 +22,7 @@ import java.util.Set;
 
 public class RocketMqSourceState implements Serializable {
 
+    private static final long serialVersionUID = 3341725159083754488L;
     private Set<RocketMqSourceSplit> assignSplits;
 
     public RocketMqSourceState(Set<RocketMqSourceSplit> assignSplits) {
diff --git 
a/seatunnel-connectors-v2/connector-selectdb-cloud/src/main/java/org/apache/seatunnel/connectors/selectdb/sink/committer/SelectDBCommitInfo.java
 
b/seatunnel-connectors-v2/connector-selectdb-cloud/src/main/java/org/apache/seatunnel/connectors/selectdb/sink/committer/SelectDBCommitInfo.java
index 8227f3efd1..2fdbeb241a 100644
--- 
a/seatunnel-connectors-v2/connector-selectdb-cloud/src/main/java/org/apache/seatunnel/connectors/selectdb/sink/committer/SelectDBCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-selectdb-cloud/src/main/java/org/apache/seatunnel/connectors/selectdb/sink/committer/SelectDBCommitInfo.java
@@ -29,6 +29,7 @@ import java.io.Serializable;
 @ToString
 @EqualsAndHashCode
 public class SelectDBCommitInfo implements Serializable {
+    private static final long serialVersionUID = -1789125342533036879L;
     private final String hostPort;
     private final String clusterName;
     private final String copySQL;
diff --git 
a/seatunnel-connectors-v2/connector-selectdb-cloud/src/main/java/org/apache/seatunnel/connectors/selectdb/sink/writer/SelectDBSinkState.java
 
b/seatunnel-connectors-v2/connector-selectdb-cloud/src/main/java/org/apache/seatunnel/connectors/selectdb/sink/writer/SelectDBSinkState.java
index a8b1cd8784..cafc665112 100644
--- 
a/seatunnel-connectors-v2/connector-selectdb-cloud/src/main/java/org/apache/seatunnel/connectors/selectdb/sink/writer/SelectDBSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-selectdb-cloud/src/main/java/org/apache/seatunnel/connectors/selectdb/sink/writer/SelectDBSinkState.java
@@ -29,6 +29,7 @@ import java.io.Serializable;
 @ToString
 @EqualsAndHashCode
 public class SelectDBSinkState implements Serializable {
+    private static final long serialVersionUID = 227253344211548924L;
     String labelPrefix;
 
     long checkpointId;
diff --git 
a/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/source/SlsSourceSplit.java
 
b/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/source/SlsSourceSplit.java
index d5099b9cd1..d73ec2f7f7 100644
--- 
a/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/source/SlsSourceSplit.java
+++ 
b/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/source/SlsSourceSplit.java
@@ -24,6 +24,7 @@ import lombok.Setter;
 
 public class SlsSourceSplit implements SourceSplit {
 
+    private static final long serialVersionUID = 7379419260082045540L;
     @Getter private String project;
     @Getter private String logStore;
     @Getter private String consumer;
diff --git 
a/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/state/SlsCommitInfo.java
 
b/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/state/SlsCommitInfo.java
index f378950d46..76bc6dbdbf 100644
--- 
a/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/state/SlsCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/state/SlsCommitInfo.java
@@ -26,5 +26,6 @@ import java.io.Serializable;
 @AllArgsConstructor
 public class SlsCommitInfo implements Serializable {
 
+    private static final long serialVersionUID = 6658731481803361412L;
     private final String data;
 }
diff --git 
a/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/state/SlsSinkState.java
 
b/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/state/SlsSinkState.java
index 6d1aaf1aac..5328bf5bcb 100644
--- 
a/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/state/SlsSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/state/SlsSinkState.java
@@ -26,5 +26,6 @@ import java.io.Serializable;
 @AllArgsConstructor
 public class SlsSinkState implements Serializable {
 
+    private static final long serialVersionUID = -2896931637893765517L;
     private final String data;
 }
diff --git 
a/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/state/SlsSourceState.java
 
b/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/state/SlsSourceState.java
index bce5ecb154..3d9c233669 100644
--- 
a/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/state/SlsSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/state/SlsSourceState.java
@@ -27,6 +27,7 @@ import java.util.Set;
 @Data
 public class SlsSourceState implements Serializable {
 
+    private static final long serialVersionUID = 803072186979969736L;
     private Set<SlsSourceSplit> assignedSplit;
 
     public SlsSourceState(Set<SlsSourceSplit> assignedSplit) {
diff --git 
a/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/source/StarRocksSourceSplit.java
 
b/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/source/StarRocksSourceSplit.java
index cf33cb0117..3d9bc0a33e 100644
--- 
a/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/source/StarRocksSourceSplit.java
+++ 
b/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/source/StarRocksSourceSplit.java
@@ -28,6 +28,7 @@ import lombok.Setter;
 @Getter
 @Setter
 public class StarRocksSourceSplit implements SourceSplit {
+    private static final long serialVersionUID = 3926987204781458652L;
     private final QueryPartition partition;
     private final String splitId;
 
diff --git 
a/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/source/StarRocksSourceState.java
 
b/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/source/StarRocksSourceState.java
index 808ebee4fc..d19451cc18 100644
--- 
a/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/source/StarRocksSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/source/StarRocksSourceState.java
@@ -30,6 +30,7 @@ import java.util.concurrent.ConcurrentLinkedQueue;
 @Setter
 @AllArgsConstructor
 public class StarRocksSourceState implements Serializable {
+    private static final long serialVersionUID = -147928488869915694L;
     private Map<Integer, List<StarRocksSourceSplit>> pendingSplit;
     private final ConcurrentLinkedQueue<String> pendingTables;
 }
diff --git 
a/seatunnel-connectors-v2/connector-tablestore/src/main/java/org/apache/seatunnel/connectors/seatunnel/tablestore/source/TableStoreDBSourceSplit.java
 
b/seatunnel-connectors-v2/connector-tablestore/src/main/java/org/apache/seatunnel/connectors/seatunnel/tablestore/source/TableStoreDBSourceSplit.java
index 24328b0a6f..b1ad1fb856 100644
--- 
a/seatunnel-connectors-v2/connector-tablestore/src/main/java/org/apache/seatunnel/connectors/seatunnel/tablestore/source/TableStoreDBSourceSplit.java
+++ 
b/seatunnel-connectors-v2/connector-tablestore/src/main/java/org/apache/seatunnel/connectors/seatunnel/tablestore/source/TableStoreDBSourceSplit.java
@@ -27,6 +27,7 @@ import lombok.Setter;
 @Setter
 public class TableStoreDBSourceSplit implements SourceSplit {
 
+    private static final long serialVersionUID = 6471832674315580956L;
     private Integer splitId;
     private String tableName;
     private String primaryKey;
diff --git 
a/seatunnel-connectors-v2/connector-tablestore/src/main/java/org/apache/seatunnel/connectors/seatunnel/tablestore/source/TableStoreDBSourceState.java
 
b/seatunnel-connectors-v2/connector-tablestore/src/main/java/org/apache/seatunnel/connectors/seatunnel/tablestore/source/TableStoreDBSourceState.java
index 05a73a6310..e18d0ea952 100644
--- 
a/seatunnel-connectors-v2/connector-tablestore/src/main/java/org/apache/seatunnel/connectors/seatunnel/tablestore/source/TableStoreDBSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-tablestore/src/main/java/org/apache/seatunnel/connectors/seatunnel/tablestore/source/TableStoreDBSourceState.java
@@ -29,6 +29,7 @@ import java.util.Map;
 @AllArgsConstructor
 public class TableStoreDBSourceState implements Serializable {
 
+    private static final long serialVersionUID = -2942147037830134078L;
     private boolean shouldEnumerate;
     private Map<Integer, List<TableStoreDBSourceSplit>> pendingSplits;
 }
diff --git 
a/seatunnel-connectors-v2/connector-tdengine/src/main/java/org/apache/seatunnel/connectors/seatunnel/tdengine/state/TDengineSourceState.java
 
b/seatunnel-connectors-v2/connector-tdengine/src/main/java/org/apache/seatunnel/connectors/seatunnel/tdengine/state/TDengineSourceState.java
index 4832cd398f..0bd300a8d3 100644
--- 
a/seatunnel-connectors-v2/connector-tdengine/src/main/java/org/apache/seatunnel/connectors/seatunnel/tdengine/state/TDengineSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-tdengine/src/main/java/org/apache/seatunnel/connectors/seatunnel/tdengine/state/TDengineSourceState.java
@@ -29,6 +29,7 @@ import java.util.Map;
 @AllArgsConstructor
 @Getter
 public class TDengineSourceState implements Serializable {
+    private static final long serialVersionUID = 6915087497958523069L;
     private boolean shouldEnumerate;
     private final Map<Integer, List<TDengineSourceSplit>> pendingSplits;
 }
diff --git 
a/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/source/TypesenseSourceState.java
 
b/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/source/TypesenseSourceState.java
index e29c732610..d7a09bbbb3 100644
--- 
a/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/source/TypesenseSourceState.java
+++ 
b/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/source/TypesenseSourceState.java
@@ -27,6 +27,7 @@ import java.util.Map;
 @AllArgsConstructor
 @Getter
 public class TypesenseSourceState implements Serializable {
+    private static final long serialVersionUID = -4243324393187167712L;
     private boolean shouldEnumerate;
     private Map<Integer, List<TypesenseSourceSplit>> pendingSplit;
 }
diff --git 
a/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/state/TypesenseAggregatedCommitInfo.java
 
b/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/state/TypesenseAggregatedCommitInfo.java
index b0f814dd8f..141a78c199 100644
--- 
a/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/state/TypesenseAggregatedCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/state/TypesenseAggregatedCommitInfo.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.typesense.state;
 
 import java.io.Serializable;
 
-public class TypesenseAggregatedCommitInfo implements Serializable {}
+public class TypesenseAggregatedCommitInfo implements Serializable {
+    private static final long serialVersionUID = -3563751133397833772L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/state/TypesenseCommitInfo.java
 
b/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/state/TypesenseCommitInfo.java
index 05e0ea83f7..0b3815f51e 100644
--- 
a/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/state/TypesenseCommitInfo.java
+++ 
b/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/state/TypesenseCommitInfo.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.typesense.state;
 
 import java.io.Serializable;
 
-public class TypesenseCommitInfo implements Serializable {}
+public class TypesenseCommitInfo implements Serializable {
+    private static final long serialVersionUID = -294402070211638237L;
+}
diff --git 
a/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/state/TypesenseSinkState.java
 
b/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/state/TypesenseSinkState.java
index 99f341d78c..104a6912bf 100644
--- 
a/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/state/TypesenseSinkState.java
+++ 
b/seatunnel-connectors-v2/connector-typesense/src/main/java/org/apache/seatunnel/connectors/seatunnel/typesense/state/TypesenseSinkState.java
@@ -19,4 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.typesense.state;
 
 import java.io.Serializable;
 
-public class TypesenseSinkState implements Serializable {}
+public class TypesenseSinkState implements Serializable {
+    private static final long serialVersionUID = -1105735724432131277L;
+}

Reply via email to