From ea5e2a74349b17b5df8bb40e90c197a1aef82271 Mon Sep 17 00:00:00 2001 From: meyonsoo Date: Sun, 22 Mar 2026 21:42:35 +0900 Subject: [PATCH 1/2] fix: return mapped port from MariaDBContainer.getLivenessCheckPortNumbers MariaDBContainer.getLivenessCheckPortNumbers() returned the hardcoded internal port (3306) instead of the mapped external port. This was originally fixed for other containers in a prior PR but MariaDB was missed. The new MariaDBContainer class then copied the same buggy implementation. Delegate to super.getLivenessCheckPortNumbers() which correctly maps internal ports to external mapped ports via getMappedPort(). Applied to both: - org.testcontainers.mariadb.MariaDBContainer (current) - org.testcontainers.containers.MariaDBContainer (deprecated) --- .../org/testcontainers/containers/MariaDBContainer.java | 3 +-- .../java/org/testcontainers/mariadb/MariaDBContainer.java | 3 +-- .../org/testcontainers/mariadb/MariaDBContainerTest.java | 7 +++++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/mariadb/src/main/java/org/testcontainers/containers/MariaDBContainer.java b/modules/mariadb/src/main/java/org/testcontainers/containers/MariaDBContainer.java index 6c9ffda7722..a094cda7938 100644 --- a/modules/mariadb/src/main/java/org/testcontainers/containers/MariaDBContainer.java +++ b/modules/mariadb/src/main/java/org/testcontainers/containers/MariaDBContainer.java @@ -1,6 +1,5 @@ package org.testcontainers.containers; -import com.google.common.collect.Sets; import org.testcontainers.images.builder.Transferable; import org.testcontainers.utility.DockerImageName; @@ -57,7 +56,7 @@ public MariaDBContainer(final DockerImageName dockerImageName) { @Override public Set getLivenessCheckPortNumbers() { - return Sets.newHashSet(MARIADB_PORT); + return super.getLivenessCheckPortNumbers(); } @Override diff --git a/modules/mariadb/src/main/java/org/testcontainers/mariadb/MariaDBContainer.java b/modules/mariadb/src/main/java/org/testcontainers/mariadb/MariaDBContainer.java index 8487f4576f7..ee49b9a1f06 100644 --- a/modules/mariadb/src/main/java/org/testcontainers/mariadb/MariaDBContainer.java +++ b/modules/mariadb/src/main/java/org/testcontainers/mariadb/MariaDBContainer.java @@ -1,6 +1,5 @@ package org.testcontainers.mariadb; -import com.google.common.collect.Sets; import org.testcontainers.containers.ContainerLaunchException; import org.testcontainers.containers.JdbcDatabaseContainer; import org.testcontainers.images.builder.Transferable; @@ -50,7 +49,7 @@ public MariaDBContainer(final DockerImageName dockerImageName) { @Override public Set getLivenessCheckPortNumbers() { - return Sets.newHashSet(MARIADB_PORT); + return super.getLivenessCheckPortNumbers(); } @Override diff --git a/modules/mariadb/src/test/java/org/testcontainers/mariadb/MariaDBContainerTest.java b/modules/mariadb/src/test/java/org/testcontainers/mariadb/MariaDBContainerTest.java index 99348f9168d..341021b3ad6 100644 --- a/modules/mariadb/src/test/java/org/testcontainers/mariadb/MariaDBContainerTest.java +++ b/modules/mariadb/src/test/java/org/testcontainers/mariadb/MariaDBContainerTest.java @@ -33,6 +33,7 @@ void testSimple() throws SQLException { int resultSetInt = resultSet.getInt(1); assertThat(resultSetInt).as("A basic SELECT query succeeds").isEqualTo(1); + assertHasCorrectExposedAndLivenessCheckPorts(mariadb); } } @@ -145,6 +146,12 @@ void testEmptyPasswordWithRootUser() throws SQLException { } } + private void assertHasCorrectExposedAndLivenessCheckPorts(MariaDBContainer mariadb) { + assertThat(mariadb.getExposedPorts()).containsExactly(MariaDBContainer.MARIADB_PORT); + assertThat(mariadb.getLivenessCheckPortNumbers()) + .containsExactly(mariadb.getMappedPort(MariaDBContainer.MARIADB_PORT)); + } + private void assertThatCustomIniFileWasUsed(MariaDBContainer mariadb) throws SQLException { try (ResultSet resultSet = performQuery(mariadb, "SELECT @@GLOBAL.innodb_max_undo_log_size")) { long result = resultSet.getLong(1); From 7ec714f2410e02018216a81da749df812f866f51 Mon Sep 17 00:00:00 2001 From: Meyon Soo Kim <39788337+PreAgile@users.noreply.github.com> Date: Fri, 24 Apr 2026 14:42:35 +0900 Subject: [PATCH 2/2] Remove redundant getLivenessCheckPortNumbers override in MariaDBContainer The override only delegated to super.getLivenessCheckPortNumbers() without adding behavior. The default WaitStrategyTarget implementation already returns the mapped external ports of the exposed ports. Applied to both: - org.testcontainers.mariadb.MariaDBContainer (current) - org.testcontainers.containers.MariaDBContainer (deprecated) --- .../org/testcontainers/containers/MariaDBContainer.java | 7 ------- .../java/org/testcontainers/mariadb/MariaDBContainer.java | 7 ------- 2 files changed, 14 deletions(-) diff --git a/modules/mariadb/src/main/java/org/testcontainers/containers/MariaDBContainer.java b/modules/mariadb/src/main/java/org/testcontainers/containers/MariaDBContainer.java index a094cda7938..23c85513fb1 100644 --- a/modules/mariadb/src/main/java/org/testcontainers/containers/MariaDBContainer.java +++ b/modules/mariadb/src/main/java/org/testcontainers/containers/MariaDBContainer.java @@ -3,8 +3,6 @@ import org.testcontainers.images.builder.Transferable; import org.testcontainers.utility.DockerImageName; -import java.util.Set; - /** * Testcontainers implementation for MariaDB. *

@@ -54,11 +52,6 @@ public MariaDBContainer(final DockerImageName dockerImageName) { addExposedPort(MARIADB_PORT); } - @Override - public Set getLivenessCheckPortNumbers() { - return super.getLivenessCheckPortNumbers(); - } - @Override protected void configure() { optionallyMapResourceParameterAsVolume( diff --git a/modules/mariadb/src/main/java/org/testcontainers/mariadb/MariaDBContainer.java b/modules/mariadb/src/main/java/org/testcontainers/mariadb/MariaDBContainer.java index ee49b9a1f06..68b12a67ff5 100644 --- a/modules/mariadb/src/main/java/org/testcontainers/mariadb/MariaDBContainer.java +++ b/modules/mariadb/src/main/java/org/testcontainers/mariadb/MariaDBContainer.java @@ -5,8 +5,6 @@ import org.testcontainers.images.builder.Transferable; import org.testcontainers.utility.DockerImageName; -import java.util.Set; - /** * Testcontainers implementation for MariaDB. *

@@ -47,11 +45,6 @@ public MariaDBContainer(final DockerImageName dockerImageName) { addExposedPort(MARIADB_PORT); } - @Override - public Set getLivenessCheckPortNumbers() { - return super.getLivenessCheckPortNumbers(); - } - @Override protected void configure() { optionallyMapResourceParameterAsVolume(