You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2024/05/17 15:35:19 UTC

(hbase) branch master updated: HBASE-26048 [JDK17] Replace the usage of deprecated API ThreadGroup.destroy() (#5913)

This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new 6c84d3960ff HBASE-26048 [JDK17] Replace the usage of deprecated API ThreadGroup.destroy() (#5913)
6c84d3960ff is described below

commit 6c84d3960ff143f9bdd11b8143a6bab505c4e165
Author: Duo Zhang <zh...@apache.org>
AuthorDate: Fri May 17 23:35:14 2024 +0800

    HBASE-26048 [JDK17] Replace the usage of deprecated API ThreadGroup.destroy() (#5913)
    
    Signed-off-by: Xin Sun <su...@apache.org>
---
 .../apache/hadoop/hbase/procedure2/ProcedureExecutor.java   | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
index 8a5062be791..0edfac8e884 100644
--- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
+++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
@@ -735,14 +735,11 @@ public class ProcedureExecutor<TEnvironment> {
       Thread.currentThread().interrupt();
     }
 
-    // Destroy the Thread Group for the executors
-    // TODO: Fix. #join is not place to destroy resources.
-    try {
-      threadGroup.destroy();
-    } catch (IllegalThreadStateException e) {
-      LOG.error("ThreadGroup {} contains running threads; {}: See STDOUT", this.threadGroup, e);
-      // This dumps list of threads on STDOUT.
-      this.threadGroup.list();
+    // log the still active threads, ThreadGroup.destroy is deprecated in JDK17 and it is not
+    // necessary for us to must destroy it here, so we just do a check and log
+    if (threadGroup.activeCount() > 0) {
+      LOG.error("There are still active thread in group {}, see STDOUT", threadGroup);
+      threadGroup.list();
     }
 
     // reset the in-memory state for testing