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

davidzollo 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 95c4ea206a [Fix][Core] Extend serialVersionUID checker coverage 
(#11257)
95c4ea206a is described below

commit 95c4ea206a903797293a2b5caf84917081e2d18a
Author: Jast <[email protected]>
AuthorDate: Tue Jul 7 21:28:58 2026 +0800

    [Fix][Core] Extend serialVersionUID checker coverage (#11257)
---
 .../seatunnel/api/SerialVersionUIDCheckerTest.java | 211 +++++++++++++++++++--
 .../cdc/base/config/JdbcSourceTableConfig.java     |   2 +
 .../config/MongodbSourceConfigProvider.java        |   2 +
 .../cdc/mysql/config/MySqlSourceConfigFactory.java |   2 +
 .../config/PostgresSourceConfigFactory.java        |   2 +
 .../config/SqlServerSourceConfigFactory.java       |   2 +
 .../cdc/tidb/source/config/TiDBSourceConfig.java   |   2 +
 .../jdbc/config/JdbcSourceTableConfig.java         |   2 +
 .../seatunnel/engine/common/job/JobResult.java     |   1 +
 .../seatunnel/engine/common/job/JobStateEvent.java |   1 +
 .../seatunnel/engine/common/job/JobStatusData.java |   2 +
 .../engine/core/job/ConnectorJarIdentifier.java    |   1 +
 .../org/apache/seatunnel/engine/core/job/Edge.java |   1 +
 .../engine/core/job/ExecutionAddress.java          |   2 +
 .../seatunnel/engine/core/job/JobDAGInfo.java      |   2 +
 .../engine/core/job/JobPipelineCheckpointData.java |   6 +
 .../engine/core/job/PipelineExecutionState.java    |   1 +
 .../seatunnel/engine/core/job/VertexInfo.java      |   1 +
 18 files changed, 231 insertions(+), 12 deletions(-)

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
index 65eb39f4b3..dc13a1d9b6 100644
--- 
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
@@ -45,6 +45,7 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -53,6 +54,7 @@ import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
 @ExtendWith(SerialVersionUIDCheckerTest.TestResultLogger.class)
@@ -62,6 +64,66 @@ public class SerialVersionUIDCheckerTest {
     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 String CONNECTOR_CDC_DIR =
+            CONNECTOR_DIR + File.separator + "connector-cdc";
+    private static final String CONNECTOR_JDBC_CONFIG_DIR =
+            CONNECTOR_DIR
+                    + File.separator
+                    + "connector-jdbc"
+                    + File.separator
+                    + JAVA_PATH_FRAGMENT
+                    + File.separator
+                    + "org"
+                    + File.separator
+                    + "apache"
+                    + File.separator
+                    + "seatunnel"
+                    + File.separator
+                    + "connectors"
+                    + File.separator
+                    + "seatunnel"
+                    + File.separator
+                    + "jdbc"
+                    + File.separator
+                    + "config";
+    private static final List<String> CHECKED_PATHS =
+            Arrays.asList(
+                    CONNECTOR_CDC_DIR,
+                    CONNECTOR_JDBC_CONFIG_DIR,
+                    "seatunnel-engine"
+                            + File.separator
+                            + "seatunnel-engine-core"
+                            + File.separator
+                            + JAVA_PATH_FRAGMENT
+                            + File.separator
+                            + "org"
+                            + File.separator
+                            + "apache"
+                            + File.separator
+                            + "seatunnel"
+                            + File.separator
+                            + "engine"
+                            + File.separator
+                            + "core"
+                            + File.separator
+                            + "job",
+                    "seatunnel-engine"
+                            + File.separator
+                            + "seatunnel-engine-common"
+                            + File.separator
+                            + JAVA_PATH_FRAGMENT
+                            + File.separator
+                            + "org"
+                            + File.separator
+                            + "apache"
+                            + File.separator
+                            + "seatunnel"
+                            + File.separator
+                            + "engine"
+                            + File.separator
+                            + "common"
+                            + File.separator
+                            + "job");
     private static final JavaParser JAVA_PARSER;
     private static final Set<String> checkedClasses = new HashSet<>();
     private static final Map<String, ClassOrInterfaceDeclaration> 
classDeclarationMap =
@@ -95,21 +157,21 @@ public class SerialVersionUIDCheckerTest {
     @Test
     public void checkSerialVersionUID() {
         List<String> missingSerialVersionUID = new ArrayList<>();
-        List<Path> connectorClassPaths = findConnectorClassPaths();
-        LOG.info("Found {} connector class files to check", 
connectorClassPaths.size());
+        List<Path> classPaths = findClassPaths();
+        LOG.info("Found {} class files to check", classPaths.size());
 
         // First, populate the classDeclarationMap with all classes
-        for (Path path : connectorClassPaths) {
+        for (Path path : classPaths) {
             populateClassDeclarationMap(path);
         }
         LOG.info("Populated class declaration map with {} classes", 
classDeclarationMap.size());
 
         // Then check each class path for serialVersionUID
-        for (Path path : connectorClassPaths) {
+        for (Path path : classPaths) {
             checkClassPath(path, missingSerialVersionUID);
         }
 
-        LOG.info("Check completed. Checked {} connector classes.", 
connectorClassPaths.size());
+        LOG.info("Check completed. Checked {} class files.", 
classPaths.size());
         if (!missingSerialVersionUID.isEmpty()) {
             String errorMessage = 
generateErrorMessage(missingSerialVersionUID);
             LOG.error("Test failed: {}", errorMessage);
@@ -118,18 +180,34 @@ public class SerialVersionUIDCheckerTest {
         LOG.info("All checked classes have correct serialVersionUID.");
     }
 
-    private List<Path> findConnectorClassPaths() {
+    @Test
+    public void checkJdbcConfigPathIsCovered() {
+        List<Path> classPaths = findClassPaths();
+
+        assertTrue(
+                classPaths.stream()
+                        .anyMatch(
+                                path ->
+                                        path.endsWith(
+                                                Paths.get(
+                                                        "jdbc",
+                                                        "config",
+                                                        
"JdbcConnectionConfig.java"))),
+                "JDBC config classes should be covered by serialVersionUID 
checker.");
+    }
+
+    private List<Path> findClassPaths() {
         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);
+                                        && 
pathString.contains(JAVA_PATH_FRAGMENT)
+                                        && 
CHECKED_PATHS.stream().anyMatch(pathString::contains);
                             })
                     .collect(Collectors.toList());
         } catch (IOException e) {
-            throw new RuntimeException("Failed to walk through connector 
directories", e);
+            throw new RuntimeException("Failed to walk through class 
directories", e);
         }
     }
 
@@ -158,8 +236,9 @@ public class SerialVersionUIDCheckerTest {
     }
 
     /**
-     * Check the class path for classes that implement SeaTunnelSource or 
SeaTunnelSink and verify
-     * they have serialVersionUID.
+     * Check classes that are serialized in job graphs and state restore 
paths. Source/sink generic
+     * state remains checked, and concrete connector config/config-factory 
classes plus engine job
+     * graph classes are checked directly.
      */
     private void checkClassPath(Path path, List<String> 
missingSerialVersionUID) {
         try {
@@ -172,6 +251,10 @@ public class SerialVersionUIDCheckerTest {
                                 List<ClassOrInterfaceDeclaration> classes =
                                         
compilationUnit.findAll(ClassOrInterfaceDeclaration.class);
                                 for (ClassOrInterfaceDeclaration 
classDeclaration : classes) {
+                                    if (shouldCheckClass(path, 
classDeclaration)) {
+                                        checkClassDeclaration(
+                                                classDeclaration, 
missingSerialVersionUID);
+                                    }
                                     if 
(implementsSeaTunnelSourceOrSink(classDeclaration)) {
                                         checkImplementedTypes(
                                                 classDeclaration, 
missingSerialVersionUID);
@@ -183,6 +266,81 @@ public class SerialVersionUIDCheckerTest {
         }
     }
 
+    private boolean shouldCheckClass(Path path, ClassOrInterfaceDeclaration 
classDeclaration) {
+        try {
+            if (classDeclaration.isInterface()) {
+                return false;
+            }
+            ResolvedReferenceTypeDeclaration typeDeclaration = 
classDeclaration.resolve();
+            if (isAbstractClass(typeDeclaration) || 
!isSerializable(typeDeclaration)) {
+                return false;
+            }
+            if (isEngineJobClass(path)) {
+                return true;
+            }
+            return isConnectorConfigOrFactory(typeDeclaration);
+        } catch (Exception e) {
+            LOG.warn(
+                    "Could not resolve class: {} in file: {}",
+                    classDeclaration.getNameAsString(),
+                    path,
+                    e);
+            return false;
+        }
+    }
+
+    private boolean isEngineJobClass(Path path) {
+        String pathString = path.toString();
+        return pathString.contains(
+                        "seatunnel-engine"
+                                + File.separator
+                                + "seatunnel-engine-core"
+                                + File.separator
+                                + JAVA_PATH_FRAGMENT
+                                + File.separator
+                                + "org"
+                                + File.separator
+                                + "apache"
+                                + File.separator
+                                + "seatunnel"
+                                + File.separator
+                                + "engine"
+                                + File.separator
+                                + "core"
+                                + File.separator
+                                + "job")
+                || pathString.contains(
+                        "seatunnel-engine"
+                                + File.separator
+                                + "seatunnel-engine-common"
+                                + File.separator
+                                + JAVA_PATH_FRAGMENT
+                                + File.separator
+                                + "org"
+                                + File.separator
+                                + "apache"
+                                + File.separator
+                                + "seatunnel"
+                                + File.separator
+                                + "engine"
+                                + File.separator
+                                + "common"
+                                + File.separator
+                                + "job");
+    }
+
+    private boolean 
isConnectorConfigOrFactory(ResolvedReferenceTypeDeclaration typeDeclaration) {
+        String className = typeDeclaration.getClassName();
+        return className.endsWith("Config")
+                || className.endsWith("ConfigFactory")
+                || hasAncestor(
+                        typeDeclaration,
+                        
"org.apache.seatunnel.connectors.cdc.base.config.SourceConfig")
+                || hasAncestor(
+                        typeDeclaration,
+                        
"org.apache.seatunnel.connectors.cdc.base.config.SourceConfig.Factory");
+    }
+
     private boolean 
implementsSeaTunnelSourceOrSink(ClassOrInterfaceDeclaration classDeclaration) {
         return classDeclaration.getImplementedTypes().stream()
                 .anyMatch(
@@ -248,6 +406,24 @@ public class SerialVersionUIDCheckerTest {
         }
     }
 
+    private void checkClassDeclaration(
+            ClassOrInterfaceDeclaration classDeclaration, List<String> 
missingSerialVersionUID) {
+        try {
+            ResolvedReferenceTypeDeclaration typeDeclaration = 
classDeclaration.resolve();
+            String className = typeDeclaration.getQualifiedName();
+            if (!checkedClasses.contains(className)) {
+                if (!hasSerialVersionUID(typeDeclaration)) {
+                    missingSerialVersionUID.add(className);
+                    LOG.warn("Class {} is missing serialVersionUID field", 
className);
+                }
+                checkedClasses.add(className);
+            }
+        } catch (Exception e) {
+            LOG.warn(
+                    "Could not check class declaration: {}", 
classDeclaration.getNameAsString(), e);
+        }
+    }
+
     private boolean isSerializable(ResolvedReferenceType resolvedType) {
         return resolvedType.getQualifiedName().equals("java.io.Serializable")
                 || resolvedType.getAllAncestors().stream()
@@ -256,9 +432,20 @@ public class SerialVersionUIDCheckerTest {
                                         
ancestor.getQualifiedName().equals("java.io.Serializable"));
     }
 
+    private boolean isSerializable(ResolvedReferenceTypeDeclaration 
typeDeclaration) {
+        return 
typeDeclaration.getQualifiedName().equals("java.io.Serializable")
+                || hasAncestor(typeDeclaration, "java.io.Serializable");
+    }
+
+    private boolean hasAncestor(
+            ResolvedReferenceTypeDeclaration typeDeclaration, String 
ancestorClassName) {
+        return typeDeclaration.getAllAncestors().stream()
+                .anyMatch(ancestor -> 
ancestor.getQualifiedName().equals(ancestorClassName));
+    }
+
     private boolean hasSerialVersionUID(ResolvedReferenceTypeDeclaration 
typeDeclaration) {
         return typeDeclaration.isInterface()
-                || typeDeclaration.getAllFields().stream()
+                || typeDeclaration.getDeclaredFields().stream()
                         .anyMatch(field -> 
field.getName().equals("serialVersionUID"));
     }
 
diff --git 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-base/src/main/java/org/apache/seatunnel/connectors/cdc/base/config/JdbcSourceTableConfig.java
 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-base/src/main/java/org/apache/seatunnel/connectors/cdc/base/config/JdbcSourceTableConfig.java
index 2c55270bd4..fc0b390399 100644
--- 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-base/src/main/java/org/apache/seatunnel/connectors/cdc/base/config/JdbcSourceTableConfig.java
+++ 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-base/src/main/java/org/apache/seatunnel/connectors/cdc/base/config/JdbcSourceTableConfig.java
@@ -24,6 +24,8 @@ import java.util.List;
 
 @Data
 public class JdbcSourceTableConfig implements Serializable {
+    private static final long serialVersionUID = 1L;
+
     private String table;
     private List<String> primaryKeys;
     private String snapshotSplitColumn;
diff --git 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mongodb/config/MongodbSourceConfigProvider.java
 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mongodb/config/MongodbSourceConfigProvider.java
index e7a69c5e0b..7226bd2f26 100644
--- 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mongodb/config/MongodbSourceConfigProvider.java
+++ 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mongodb/config/MongodbSourceConfigProvider.java
@@ -40,6 +40,8 @@ public class MongodbSourceConfigProvider {
     }
 
     public static class Builder implements 
SourceConfig.Factory<MongodbSourceConfig> {
+        private static final long serialVersionUID = 1L;
+
         private String hosts;
         private String username;
         private String password;
diff --git 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mysql/config/MySqlSourceConfigFactory.java
 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mysql/config/MySqlSourceConfigFactory.java
index b9aa542f1e..64f01a2251 100644
--- 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mysql/config/MySqlSourceConfigFactory.java
+++ 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mysql/config/MySqlSourceConfigFactory.java
@@ -30,6 +30,8 @@ import static 
org.apache.seatunnel.shade.com.google.common.base.Preconditions.ch
 
 /** A factory to initialize {@link MySqlSourceConfig}. */
 public class MySqlSourceConfigFactory extends JdbcSourceConfigFactory {
+    private static final long serialVersionUID = -6578851046816898665L;
+
     public static final String SCHEMA_CHANGE_KEY = "include.schema.changes";
 
     private ServerIdRange serverIdRange;
diff --git 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-postgres/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/postgres/config/PostgresSourceConfigFactory.java
 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-postgres/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/postgres/config/PostgresSourceConfigFactory.java
index 9838f5a955..99d293e327 100644
--- 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-postgres/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/postgres/config/PostgresSourceConfigFactory.java
+++ 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-postgres/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/postgres/config/PostgresSourceConfigFactory.java
@@ -32,6 +32,8 @@ import static 
org.apache.seatunnel.shade.com.google.common.base.Preconditions.ch
 
 public class PostgresSourceConfigFactory extends JdbcSourceConfigFactory {
 
+    private static final long serialVersionUID = 1L;
+
     private static final String DATABASE_SERVER_NAME = "postgres_cdc_source";
 
     private static final String DRIVER_CLASS_NAME = "org.postgresql.Driver";
diff --git 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-sqlserver/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/sqlserver/config/SqlServerSourceConfigFactory.java
 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-sqlserver/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/sqlserver/config/SqlServerSourceConfigFactory.java
index 9de44488cc..8b932bbc82 100644
--- 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-sqlserver/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/sqlserver/config/SqlServerSourceConfigFactory.java
+++ 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-sqlserver/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/sqlserver/config/SqlServerSourceConfigFactory.java
@@ -31,6 +31,8 @@ import static 
org.apache.seatunnel.shade.com.google.common.base.Preconditions.ch
 /** Factory for creating {@link SqlServerSourceConfig}. */
 public class SqlServerSourceConfigFactory extends JdbcSourceConfigFactory {
 
+    private static final long serialVersionUID = 1L;
+
     private static final String DATABASE_SERVER_NAME = 
"sqlserver_transaction_log_source";
     private static final String DRIVER_CLASS_NAME = 
"com.microsoft.sqlserver.jdbc.SQLServerDriver";
     public static final String SCHEMA_CHANGE_KEY = "include.schema.changes";
diff --git 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-tidb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/tidb/source/config/TiDBSourceConfig.java
 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-tidb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/tidb/source/config/TiDBSourceConfig.java
index 26904f277a..ecd1e3b7f7 100644
--- 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-tidb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/tidb/source/config/TiDBSourceConfig.java
+++ 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-tidb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/tidb/source/config/TiDBSourceConfig.java
@@ -35,6 +35,8 @@ import java.io.Serializable;
 @NoArgsConstructor
 @EqualsAndHashCode
 public class TiDBSourceConfig implements Serializable {
+    private static final long serialVersionUID = 1L;
+
     private String databaseName;
     private String tableName;
     private StartupMode startupMode;
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcSourceTableConfig.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcSourceTableConfig.java
index e080135618..fccd3a1117 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcSourceTableConfig.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcSourceTableConfig.java
@@ -37,6 +37,8 @@ import java.util.stream.Collectors;
 @Builder
 @JsonIgnoreProperties(ignoreUnknown = true)
 public class JdbcSourceTableConfig implements Serializable {
+    private static final long serialVersionUID = 2L;
+
     private static final int DEFAULT_PARTITION_NUMBER = 10;
 
     @JsonProperty("table_path")
diff --git 
a/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/job/JobResult.java
 
b/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/job/JobResult.java
index 34dc18830c..224fdd2475 100644
--- 
a/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/job/JobResult.java
+++ 
b/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/job/JobResult.java
@@ -26,6 +26,7 @@ import java.io.Serializable;
 @Data
 @AllArgsConstructor
 public class JobResult implements Serializable {
+    private static final long serialVersionUID = 1L;
 
     @NonNull private JobStatus status;
 
diff --git 
a/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/job/JobStateEvent.java
 
b/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/job/JobStateEvent.java
index fdb90b577f..ae658022d4 100644
--- 
a/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/job/JobStateEvent.java
+++ 
b/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/job/JobStateEvent.java
@@ -28,6 +28,7 @@ import lombok.ToString;
 @Setter
 @ToString
 public class JobStateEvent implements Event {
+    private static final long serialVersionUID = 1L;
 
     private String jobId;
     private String jobName;
diff --git 
a/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/job/JobStatusData.java
 
b/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/job/JobStatusData.java
index f88c4fb779..d275aca763 100644
--- 
a/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/job/JobStatusData.java
+++ 
b/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/job/JobStatusData.java
@@ -27,6 +27,8 @@ import java.io.Serializable;
 @Data
 @NoArgsConstructor
 public final class JobStatusData implements Serializable {
+    private static final long serialVersionUID = 1L;
+
     private Long jobId;
     private String jobName;
     private JobStatus jobStatus;
diff --git 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/ConnectorJarIdentifier.java
 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/ConnectorJarIdentifier.java
index 13ffcabf88..f20d2c7aa6 100644
--- 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/ConnectorJarIdentifier.java
+++ 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/ConnectorJarIdentifier.java
@@ -27,6 +27,7 @@ import java.io.Serializable;
 @Setter
 @EqualsAndHashCode
 public class ConnectorJarIdentifier implements Serializable {
+    private static final long serialVersionUID = 1L;
 
     private byte[] connectorJarID;
 
diff --git 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/Edge.java
 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/Edge.java
index 5c9af71bfc..ddf52bc96b 100644
--- 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/Edge.java
+++ 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/Edge.java
@@ -25,6 +25,7 @@ import java.io.Serializable;
 @Data
 @AllArgsConstructor
 public class Edge implements Serializable {
+    private static final long serialVersionUID = 1L;
 
     private Long inputVertexId;
 
diff --git 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/ExecutionAddress.java
 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/ExecutionAddress.java
index 605890c518..1762e14c41 100644
--- 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/ExecutionAddress.java
+++ 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/ExecutionAddress.java
@@ -22,6 +22,8 @@ import java.io.Serializable;
 @AllArgsConstructor
 @NoArgsConstructor
 public class ExecutionAddress implements Serializable {
+    private static final long serialVersionUID = 1L;
+
     private String hostname;
     private int port;
 }
diff --git 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/JobDAGInfo.java
 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/JobDAGInfo.java
index 9790f48e39..a1c5c60c8e 100644
--- 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/JobDAGInfo.java
+++ 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/JobDAGInfo.java
@@ -35,6 +35,8 @@ import java.util.Set;
 @NoArgsConstructor
 @Data
 public class JobDAGInfo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
     Long jobId;
     Map<String, Object> envOptions;
     Map<Integer, List<Edge>> pipelineEdges;
diff --git 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/JobPipelineCheckpointData.java
 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/JobPipelineCheckpointData.java
index a9901dd337..1b2723c0af 100644
--- 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/JobPipelineCheckpointData.java
+++ 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/JobPipelineCheckpointData.java
@@ -38,6 +38,8 @@ import java.util.Map;
 @Builder
 @AllArgsConstructor
 public class JobPipelineCheckpointData implements Serializable {
+    private static final long serialVersionUID = 1L;
+
     private long jobId;
     private int pipelineId;
     private long checkpointId;
@@ -52,6 +54,8 @@ public class JobPipelineCheckpointData implements 
Serializable {
     @Data
     @AllArgsConstructor
     public static class ActionState implements Serializable {
+        private static final long serialVersionUID = 1L;
+
         private List<byte[]> coordinatorState;
         private List<ActionSubtaskState> subtaskState;
     }
@@ -59,6 +63,8 @@ public class JobPipelineCheckpointData implements 
Serializable {
     @Data
     @AllArgsConstructor
     public static class ActionSubtaskState implements Serializable {
+        private static final long serialVersionUID = 1L;
+
         private final int index;
         private final List<byte[]> state;
     }
diff --git 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/PipelineExecutionState.java
 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/PipelineExecutionState.java
index a470196ed5..239b6db966 100644
--- 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/PipelineExecutionState.java
+++ 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/PipelineExecutionState.java
@@ -23,6 +23,7 @@ import java.io.Serializable;
 
 @Getter
 public class PipelineExecutionState implements Serializable {
+    private static final long serialVersionUID = 1L;
 
     private final int pipelineId;
 
diff --git 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/VertexInfo.java
 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/VertexInfo.java
index e7e00e9ef6..d1bd0293c7 100644
--- 
a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/VertexInfo.java
+++ 
b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/job/VertexInfo.java
@@ -31,6 +31,7 @@ import java.util.List;
 @NoArgsConstructor
 @AllArgsConstructor
 public class VertexInfo implements Serializable {
+    private static final long serialVersionUID = 1L;
 
     private long vertexId;
 

Reply via email to