You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by jd...@apache.org on 2024/03/14 15:53:26 UTC
(solr) branch branch_9x updated: SOLR-599: Better thread clean-up in unit tests (#2259)
This is an automated email from the ASF dual-hosted git repository.
jdyer pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_9x by this push:
new 7eb38d5e7dd SOLR-599: Better thread clean-up in unit tests (#2259)
7eb38d5e7dd is described below
commit 7eb38d5e7ddd31cae49f768c19cc0e13a5e19247
Author: jdyer1 <jd...@apache.org>
AuthorDate: Thu Mar 14 10:51:54 2024 -0500
SOLR-599: Better thread clean-up in unit tests (#2259)
---
.../solr/client/solrj/impl/Http2SolrClientProxyTest.java | 14 ++++++++++++++
.../solr/client/solrj/impl/HttpJdkSolrClientTest.java | 14 ++++++++++++++
2 files changed, 28 insertions(+)
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/Http2SolrClientProxyTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/Http2SolrClientProxyTest.java
index fd9ef539c02..6b48b1777da 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/Http2SolrClientProxyTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/Http2SolrClientProxyTest.java
@@ -17,7 +17,11 @@
package org.apache.solr.client.solrj.impl;
import com.carrotsearch.randomizedtesting.RandomizedTest;
+import java.util.Arrays;
+import java.util.Objects;
import java.util.Properties;
+import java.util.Set;
+import java.util.stream.Collectors;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.cloud.SocketProxy;
@@ -85,6 +89,16 @@ public class Http2SolrClientProxyTest extends SolrTestCaseJ4 {
}
// This is a workaround for java.net.http.HttpClient not implementing closeable/autoclosable
// until Java 21.
+ Thread[] threads = new Thread[Thread.currentThread().getThreadGroup().activeCount()];
+ Thread.currentThread().getThreadGroup().enumerate(threads);
+ Set<Thread> tSet =
+ Arrays.stream(threads)
+ .filter(Objects::nonNull)
+ .filter(t -> t.getName().startsWith("HttpClient-"))
+ .collect(Collectors.toSet());
+ for (Thread t : tSet) {
+ t.interrupt();
+ }
System.gc();
}
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpJdkSolrClientTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpJdkSolrClientTest.java
index 5c614921762..d9e9e7a87a6 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpJdkSolrClientTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpJdkSolrClientTest.java
@@ -24,9 +24,13 @@ import java.net.Socket;
import java.net.http.HttpClient;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
+import java.util.Arrays;
import java.util.Collections;
+import java.util.Objects;
+import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
@@ -73,6 +77,16 @@ public class HttpJdkSolrClientTest extends HttpSolrClientTestBase {
@After
public void workaroundToReleaseThreads_noClosableUntilJava21() {
+ Thread[] threads = new Thread[Thread.currentThread().getThreadGroup().activeCount()];
+ Thread.currentThread().getThreadGroup().enumerate(threads);
+ Set<Thread> tSet =
+ Arrays.stream(threads)
+ .filter(Objects::nonNull)
+ .filter(t -> t.getName().startsWith("HttpClient-"))
+ .collect(Collectors.toSet());
+ for (Thread t : tSet) {
+ t.interrupt();
+ }
System.gc();
}