This is an automated email from the ASF dual-hosted git repository. lhotari pushed a commit to branch branch-3.0 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit ec96825ea498bbda14bf6f130f3f8410bbdc88cf Author: Lari Hotari <[email protected]> AuthorDate: Thu Jul 17 11:30:44 2025 +0300 [improve][test][branch-3.0] Backport MockedPulsarServiceBaseTest.registerCloseable to branch-3.0 - originally added in #21477 for Pulsar 3.2.0 --- .../broker/auth/MockedPulsarServiceBaseTest.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/auth/MockedPulsarServiceBaseTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/auth/MockedPulsarServiceBaseTest.java index 8c852cd2ec2..02f00a55d1d 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/auth/MockedPulsarServiceBaseTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/auth/MockedPulsarServiceBaseTest.java @@ -26,9 +26,11 @@ import java.lang.reflect.Method; import java.net.InetSocketAddress; import java.net.URI; import java.net.URL; +import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.HashSet; +import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; @@ -139,6 +141,8 @@ public abstract class MockedPulsarServiceBaseTest extends TestRetrySupport { protected boolean enableBrokerInterceptor = false; + private final List<AutoCloseable> closeables = new ArrayList<>(); + // Set to true in test's constructor to use a real Zookeeper (TestZKServer) protected boolean useTestZookeeper; @@ -268,6 +272,8 @@ public abstract class MockedPulsarServiceBaseTest extends TestRetrySupport { } resetConfig(); + callCloseables(closeables); + closeables.clear(); onCleanup(); // clear fields to avoid test runtime memory leak, pulsarTestContext already handles closing of these instances @@ -280,6 +286,21 @@ public abstract class MockedPulsarServiceBaseTest extends TestRetrySupport { } + protected <T extends AutoCloseable> T registerCloseable(T closeable) { + closeables.add(closeable); + return closeable; + } + + private static void callCloseables(List<AutoCloseable> closeables) { + for (int i = closeables.size() - 1; i >= 0; i--) { + try { + closeables.get(i).close(); + } catch (Exception e) { + log.error("Failure in calling close method", e); + } + } + } + protected abstract void setup() throws Exception; protected abstract void cleanup() throws Exception;
