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 70a3980050 [HotFix][E2E][JDBC] Fix not remove docker image after test 
finish on jdbc suite (#5586)
70a3980050 is described below

commit 70a39800504a229a1f266616b461f14715fdb938
Author: Chengyu Yan <[email protected]>
AuthorDate: Wed Oct 4 09:11:56 2023 +0800

    [HotFix][E2E][JDBC] Fix not remove docker image after test finish on jdbc 
suite (#5586)
---
 release-note.md                                    |  1 +
 .../connectors/seatunnel/jdbc/AbstractJdbcIT.java  | 27 ++++++++++++++--------
 .../connectors/seatunnel/jdbc/JdbcDb2IT.java       |  6 +++++
 .../connectors/seatunnel/jdbc/JdbcPhoenixIT.java   |  6 +++++
 4 files changed, 31 insertions(+), 9 deletions(-)

diff --git a/release-note.md b/release-note.md
index 8566680d4e..d60b94b9a5 100644
--- a/release-note.md
+++ b/release-note.md
@@ -85,6 +85,7 @@
 - [Container Version] Fix risk of unreproducible test cases #4591
 - [E2e] [Mysql-cdc] Removing the excess MySqlIncrementalSourceIT e2e reduces 
the CI time (#4738)
 - [E2E] [Common] Update test container version of seatunnel engine (#5323)
+- [E2E] [Jdbc] Fix not remove docker image after test finish on jdbc suite 
(#5586)
 
 ## Improve
 
diff --git 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-common/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/AbstractJdbcIT.java
 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-common/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/AbstractJdbcIT.java
index 4f3da34175..2738f5ccc3 100644
--- 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-common/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/AbstractJdbcIT.java
+++ 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-common/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/AbstractJdbcIT.java
@@ -32,12 +32,14 @@ import 
org.apache.seatunnel.e2e.common.junit.TestContainerExtension;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.tuple.Pair;
 
+import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestTemplate;
 import org.testcontainers.containers.Container;
 import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.images.PullPolicy;
 import org.testcontainers.lifecycle.Startables;
 
 import com.github.dockerjava.api.model.Image;
@@ -194,7 +196,13 @@ public abstract class AbstractJdbcIT extends TestSuiteBase 
implements TestResour
     public void clearTable(String schema, String table) {
         try (Statement statement = connection.createStatement()) {
             statement.execute("TRUNCATE TABLE " + 
buildTableInfoWithSchema(schema, table));
+            connection.commit();
         } catch (SQLException e) {
+            try {
+                connection.rollback();
+            } catch (SQLException exception) {
+                throw new 
SeaTunnelRuntimeException(JdbcITErrorCode.CLEAR_TABLE_FAILED, exception);
+            }
             throw new 
SeaTunnelRuntimeException(JdbcITErrorCode.CLEAR_TABLE_FAILED, e);
         }
     }
@@ -220,7 +228,7 @@ public abstract class AbstractJdbcIT extends TestSuiteBase 
implements TestResour
     @BeforeAll
     @Override
     public void startUp() {
-        dbServer = initContainer();
+        dbServer = 
initContainer().withImagePullPolicy(PullPolicy.alwaysPull());
         jdbcCase = getJdbcCase();
 
         Startables.deepStart(Stream.of(dbServer)).join();
@@ -236,8 +244,17 @@ public abstract class AbstractJdbcIT extends TestSuiteBase 
implements TestResour
         initCatalog();
     }
 
+    @AfterAll
     @Override
     public void tearDown() throws SQLException {
+        if (catalog != null) {
+            catalog.close();
+        }
+
+        if (connection != null) {
+            connection.close();
+        }
+
         if (dbServer != null) {
             dbServer.close();
             String images =
@@ -258,14 +275,6 @@ public abstract class AbstractJdbcIT extends TestSuiteBase 
implements TestResour
                     dbServer.getDockerImageName(),
                     images);
         }
-
-        if (connection != null) {
-            connection.close();
-        }
-
-        if (catalog != null) {
-            catalog.close();
-        }
     }
 
     @TestTemplate
diff --git 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-1/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcDb2IT.java
 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-1/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcDb2IT.java
index b181531282..f258faa75f 100644
--- 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-1/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcDb2IT.java
+++ 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-1/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcDb2IT.java
@@ -207,7 +207,13 @@ public class JdbcDb2IT extends AbstractJdbcIT {
         try (Statement statement = connection.createStatement()) {
             String truncate = String.format("delete from \"%s\".%s where 
1=1;", schema, table);
             statement.execute(truncate);
+            connection.commit();
         } catch (SQLException e) {
+            try {
+                connection.rollback();
+            } catch (SQLException exception) {
+                throw new 
SeaTunnelRuntimeException(JdbcITErrorCode.CLEAR_TABLE_FAILED, exception);
+            }
             throw new 
SeaTunnelRuntimeException(JdbcITErrorCode.CLEAR_TABLE_FAILED, e);
         }
     }
diff --git 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-2/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcPhoenixIT.java
 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-2/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcPhoenixIT.java
index a775f19efc..34283f20d4 100644
--- 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-2/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcPhoenixIT.java
+++ 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-2/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcPhoenixIT.java
@@ -110,7 +110,13 @@ public class JdbcPhoenixIT extends AbstractJdbcIT {
                     String.format(
                             "delete from %s where 1=1", 
buildTableInfoWithSchema(schema, table));
             statement.execute(truncate);
+            connection.commit();
         } catch (SQLException e) {
+            try {
+                connection.rollback();
+            } catch (SQLException exception) {
+                throw new 
SeaTunnelRuntimeException(JdbcITErrorCode.CLEAR_TABLE_FAILED, exception);
+            }
             throw new 
SeaTunnelRuntimeException(JdbcITErrorCode.CLEAR_TABLE_FAILED, e);
         }
     }

Reply via email to