From 8fa3ee5cf6269ebecce5ba3c859c1b0fb9b9bc62 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 ce0f611d0c52256b0552f2f5f601bb3ea7db571f Mon Sep 17 00:00:00 2001 From: meyonsoo Date: Mon, 23 Mar 2026 20:51:06 +0900 Subject: [PATCH 2/2] fix: remove unnecessary getLivenessCheckPortNumbers override from MariaDBContainer The override was simply delegating to super, which is redundant. Removing the method entirely lets the parent class handle port mapping correctly. Also removed the associated test helper since it's no longer needed. --- .../org/testcontainers/containers/MariaDBContainer.java | 7 ------- .../java/org/testcontainers/mariadb/MariaDBContainer.java | 7 ------- .../org/testcontainers/mariadb/MariaDBContainerTest.java | 7 ------- 3 files changed, 21 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( 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 341021b3ad6..99348f9168d 100644 --- a/modules/mariadb/src/test/java/org/testcontainers/mariadb/MariaDBContainerTest.java +++ b/modules/mariadb/src/test/java/org/testcontainers/mariadb/MariaDBContainerTest.java @@ -33,7 +33,6 @@ void testSimple() throws SQLException { int resultSetInt = resultSet.getInt(1); assertThat(resultSetInt).as("A basic SELECT query succeeds").isEqualTo(1); - assertHasCorrectExposedAndLivenessCheckPorts(mariadb); } } @@ -146,12 +145,6 @@ 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);