This is an automated email from the ASF dual-hosted git repository. dsmiley pushed a commit to branch branch_10x in repository https://gitbox.apache.org/repos/asf/solr.git
commit 32b0f77ec49bda28cc8b8c6f8c2ee22f7b763a56 Author: Chris Hostetter <[email protected]> AuthorDate: Sat May 9 10:58:44 2026 -0700 SOLR-18055: Fix test to prevent suite failures due to object (and thread) leaks when SSL is randomized In the prior code the assumptions thrown by the helper methods would prevent the SolrZkClient (and all associated zk threads) from being closed this change also ensures that the testUrlSchemeWithSystemProperties (which is designed to support ssl) is not skipped if the helpers that don't work with ssl are skipped --- .../solrj/impl/ClusterStateProviderTest.java | 28 +++++++++++++++------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ClusterStateProviderTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ClusterStateProviderTest.java index 63f3ab56657..3d6ff7ca62f 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ClusterStateProviderTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ClusterStateProviderTest.java @@ -460,25 +460,34 @@ public class ClusterStateProviderTest extends SolrCloudTestCase { final ZkTestServer server = new ZkTestServer(zkDir); try { server.run(); - SolrZkClient client = new SolrZkClient.Builder().withUrl(server.getZkAddress()).build(); - ZkController.createClusterZkNodes(client); - testUrlSchemeWithClusterProperties(client); - testUrlSchemeDefault(client); - testUrlSchemeWithSystemProperties(client); - client.close(); + try (SolrZkClient client = + new SolrZkClient.Builder().withUrl(server.getZkAddress()).build()) { + ZkController.createClusterZkNodes(client); + + testUrlSchemeWithSystemProperties(client); + + assumeFalse( + "Skip schema default and cluster property checks when SSL is enabled", isSSLMode()); + testUrlSchemeWithClusterProperties(client); + testUrlSchemeDefault(client); + } } finally { server.shutdown(); } } + /** + * Used by {@link #testZkClusterStateProviderUrlScheme}. Only valid if {@link #isSSLMode} is false + */ private void testUrlSchemeDefault(SolrZkClient client) throws Exception { - assumeFalse("Skip the test when ssl is enabled", isSSLMode()); + assertFalse("These checks are not supported in SSL mode", isSSLMode()); try (var zkStateReader = new ZkStateReader(client); var clusterStateProvider = new ZkClientClusterStateProvider(zkStateReader)) { assertEquals("http", clusterStateProvider.getUrlScheme()); } } + /** Used by {@link #testZkClusterStateProviderUrlScheme} */ private void testUrlSchemeWithSystemProperties(SolrZkClient client) throws Exception { try (var zkStateReader = new ZkStateReader(client); var clusterStateProvider = new ZkClientClusterStateProvider(zkStateReader)) { @@ -487,8 +496,11 @@ public class ClusterStateProviderTest extends SolrCloudTestCase { } } + /** + * Used by {@link #testZkClusterStateProviderUrlScheme}. Only valid if {@link #isSSLMode} is false + */ private void testUrlSchemeWithClusterProperties(SolrZkClient client) throws Exception { - assumeFalse("Skip the test when ssl is enabled", isSSLMode()); + assertFalse("These checks are not supported in SSL mode", isSSLMode()); ClusterProperties cp = new ClusterProperties(client); cp.setClusterProperty("urlScheme", "ftp"); try (var zkStateReader = new ZkStateReader(client);
