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

vjasani 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 7b7e25a  HBASE-24451 Remove the HasThread because the related bug had 
been fixed since jdk7 (#1797)
7b7e25a is described below

commit 7b7e25a50bd2d586d7d91350e896ebd2e4833ee4
Author: bsglz <18031...@qq.com>
AuthorDate: Fri May 29 20:03:18 2020 +0800

    HBASE-24451 Remove the HasThread because the related bug had been fixed 
since jdk7 (#1797)
    
    Signed-off-by: stack <st...@apache.org>
    Signed-off-by: Viraj Jasani <vjas...@apache.org>
---
 dev-support/spotbugs-exclude.xml                   |   5 +
 .../org/apache/hadoop/hbase/util/HasThread.java    | 103 ---------------------
 .../hadoop/hbase/io/hfile/LruBlockCache.java       |   3 +-
 .../hadoop/hbase/io/hfile/bucket/BucketCache.java  |   3 +-
 .../org/apache/hadoop/hbase/master/HMaster.java    |   3 +-
 .../hadoop/hbase/master/SplitLogManager.java       |   5 +-
 .../hbase/master/assignment/AssignmentManager.java |   5 +-
 .../hadoop/hbase/regionserver/HRegionServer.java   |  20 ++--
 .../hadoop/hbase/regionserver/LeaseManager.java    |   3 +-
 .../hadoop/hbase/regionserver/MemStoreFlusher.java |   5 +-
 .../hadoop/hbase/regionserver/wal/FSHLog.java      |   3 +-
 .../apache/hadoop/hbase/util/JVMClusterUtil.java   |   2 +-
 .../apache/hadoop/hbase/wal/AbstractWALRoller.java |   5 +-
 .../TestRegionAssignedToMultipleRegionServers.java |   2 +-
 .../hadoop/hbase/wal/WALPerformanceEvaluation.java |   2 +-
 15 files changed, 30 insertions(+), 139 deletions(-)

diff --git a/dev-support/spotbugs-exclude.xml b/dev-support/spotbugs-exclude.xml
index a5da96f..f57faaf 100644
--- a/dev-support/spotbugs-exclude.xml
+++ b/dev-support/spotbugs-exclude.xml
@@ -242,4 +242,9 @@
     <Bug pattern="MS_EXPOSE_REP"/>
   </Match>
 
+  <Match>
+    <Class name="org.apache.hadoop.hbase.io.hfile.LruBlockCache"/>
+    <Bug pattern="SC_START_IN_CTOR"/>
+  </Match>
+
 </FindBugsFilter>
diff --git 
a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/HasThread.java 
b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/HasThread.java
deleted file mode 100644
index 29d5cda..0000000
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/HasThread.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hbase.util;
-
-import java.lang.Thread.UncaughtExceptionHandler;
-
-import org.apache.yetus.audience.InterfaceAudience;
-
-/**
- * Abstract class which contains a Thread and delegates the common Thread
- * methods to that instance.
- * 
- * The purpose of this class is to workaround Sun JVM bug #6915621, in which
- * something internal to the JDK uses Thread.currentThread() as a monitor
- * lock. This can produce deadlocks like HBASE-4367, HBASE-4101, etc.
- */
-@InterfaceAudience.Private
-public abstract class HasThread implements Runnable {
-  private final Thread thread;
-  
-  public HasThread() {
-    this.thread = new Thread(this);
-    this.thread.setDaemon(true);
-  }
-
-  public HasThread(String name) {
-    this.thread = new Thread(this, name);
-    this.thread.setDaemon(true);
-  }
-  
-  public Thread getThread() {
-    return thread;
-  }
-
-  @Override
-  public abstract void run();
-  
-  //// Begin delegation to Thread
-  
-  public final String getName() {
-    return thread.getName();
-  }
-
-  public void interrupt() {
-    thread.interrupt();
-  }
-
-  public final boolean isAlive() {
-    return thread.isAlive();
-  }
-
-  public boolean isInterrupted() {
-    return thread.isInterrupted();
-  }
-
-  public final void setDaemon(boolean on) {
-    thread.setDaemon(on);
-  }
-
-  public final void setName(String name) {
-    thread.setName(name);
-  }
-
-  public final void setPriority(int newPriority) {
-    thread.setPriority(newPriority);
-  }
-
-  public void setUncaughtExceptionHandler(UncaughtExceptionHandler eh) {
-    thread.setUncaughtExceptionHandler(eh);
-  }
-
-  public void start() {
-    thread.start();
-  }
-  
-  public final void join() throws InterruptedException {
-    thread.join();
-  }
-
-  public final void join(long millis, int nanos) throws InterruptedException {
-    thread.join(millis, nanos);
-  }
-
-  public final void join(long millis) throws InterruptedException {
-    thread.join(millis);
-  }
-  //// End delegation to Thread
-}
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java
index f93a651..5587c40 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java
@@ -39,7 +39,6 @@ import org.apache.hadoop.hbase.io.HeapSize;
 import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.ClassSize;
-import org.apache.hadoop.hbase.util.HasThread;
 import org.apache.hadoop.util.StringUtils;
 import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
@@ -920,7 +919,7 @@ public class LruBlockCache implements FirstLevelBlockCache {
    *
    * Thread is triggered into action by {@link LruBlockCache#runEviction()}
    */
-  static class EvictionThread extends HasThread {
+  static class EvictionThread extends Thread {
 
     private WeakReference<LruBlockCache> cache;
     private volatile boolean go = true;
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
index 724755c..d74f63d 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
@@ -70,7 +70,6 @@ import org.apache.hadoop.hbase.nio.ByteBuff;
 import org.apache.hadoop.hbase.nio.RefCnt;
 import org.apache.hadoop.hbase.protobuf.ProtobufMagic;
 import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
-import org.apache.hadoop.hbase.util.HasThread;
 import org.apache.hadoop.hbase.util.IdReadWriteLock;
 import org.apache.hadoop.hbase.util.IdReadWriteLockStrongRef;
 import org.apache.hadoop.hbase.util.IdReadWriteLockWithObjectPool;
@@ -878,7 +877,7 @@ public class BucketCache implements BlockCache, HeapSize {
 
   // This handles flushing the RAM cache to IOEngine.
   @VisibleForTesting
-  class WriterThread extends HasThread {
+  class WriterThread extends Thread {
     private final BlockingQueue<RAMQueueEntry> inputQueue;
     private volatile boolean writerEnabled = true;
 
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
index 4b9cf73..3abfac2 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
@@ -199,7 +199,6 @@ import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.FutureUtils;
 import org.apache.hadoop.hbase.util.HBaseFsck;
 import org.apache.hadoop.hbase.util.HFileArchiveUtil;
-import org.apache.hadoop.hbase.util.HasThread;
 import org.apache.hadoop.hbase.util.IdLock;
 import org.apache.hadoop.hbase.util.ModifyRegionUtils;
 import org.apache.hadoop.hbase.util.Pair;
@@ -261,7 +260,7 @@ public class HMaster extends HRegionServer implements 
MasterServices {
    * Protection against zombie master. Started once Master accepts active 
responsibility and
    * starts taking over responsibilities. Allows a finite time window before 
giving up ownership.
    */
-  private static class InitializationMonitor extends HasThread {
+  private static class InitializationMonitor extends Thread {
     /** The amount of time in milliseconds to sleep before checking 
initialization status. */
     public static final String TIMEOUT_KEY = 
"hbase.master.initializationmonitor.timeout";
     public static final long TIMEOUT_DEFAULT = 
TimeUnit.MILLISECONDS.convert(15, TimeUnit.MINUTES);
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java
index 3762817..b2e99b2 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java
@@ -53,7 +53,6 @@ import org.apache.hadoop.hbase.monitoring.TaskMonitor;
 import org.apache.hadoop.hbase.procedure2.util.StringUtils;
 import org.apache.hadoop.hbase.util.CommonFSUtils;
 import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
-import org.apache.hadoop.hbase.util.HasThread;
 import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;
 import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
@@ -122,9 +121,9 @@ public class SplitLogManager {
       throws IOException {
     this.server = master;
     this.conf = conf;
-    // Get Server Thread name. Sometimes the Server is mocked so may not 
implement HasThread.
+    // Get Server Thread name. Sometimes the Server is mocked so may not 
extends Thread.
     // For example, in tests.
-    String name = master instanceof HasThread? ((HasThread)master).getName():
+    String name = master instanceof Thread? ((Thread)master).getName():
         master.getServerName().toShortString();
     this.choreService =
         new ChoreService(name + ".splitLogManager.");
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
index ab473b7..fceb87d 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
@@ -75,7 +75,6 @@ import org.apache.hadoop.hbase.regionserver.SequenceId;
 import org.apache.hadoop.hbase.rsgroup.RSGroupBasedLoadBalancer;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
-import org.apache.hadoop.hbase.util.HasThread;
 import org.apache.hadoop.hbase.util.Pair;
 import org.apache.hadoop.hbase.util.Threads;
 import org.apache.hadoop.hbase.util.VersionInfo;
@@ -1908,9 +1907,9 @@ public class AssignmentManager {
   }
 
   private void startAssignmentThread() {
-    // Get Server Thread name. Sometimes the Server is mocked so may not 
implement HasThread.
+    // Get Server Thread name. Sometimes the Server is mocked so may not 
implement Thread.
     // For example, in tests.
-    String name = master instanceof HasThread? ((HasThread)master).getName():
+    String name = master instanceof Thread? ((Thread)master).getName():
         master.getServerName().toShortString();
     assignThread = new Thread(name) {
       @Override
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
index 91f3475..f05c18e 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
@@ -24,7 +24,6 @@ import static 
org.apache.hadoop.hbase.HConstants.HBASE_SPLIT_WAL_MAX_SPLITTER;
 import static org.apache.hadoop.hbase.util.DNS.RS_HOSTNAME_KEY;
 
 import java.io.IOException;
-import java.lang.Thread.UncaughtExceptionHandler;
 import java.lang.management.MemoryType;
 import java.lang.management.MemoryUsage;
 import java.lang.reflect.Constructor;
@@ -120,7 +119,7 @@ import org.apache.hadoop.hbase.log.HBaseMarkers;
 import org.apache.hadoop.hbase.master.HMaster;
 import org.apache.hadoop.hbase.master.LoadBalancer;
 import org.apache.hadoop.hbase.master.MasterRpcServicesVersionWrapper;
-import org.apache.hadoop.hbase.master.RegionState.State;
+import org.apache.hadoop.hbase.master.RegionState;
 import org.apache.hadoop.hbase.mob.MobFileCache;
 import org.apache.hadoop.hbase.procedure.RegionServerProcedureManagerHost;
 import org.apache.hadoop.hbase.procedure2.RSProcedureCallable;
@@ -161,7 +160,6 @@ import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
 import org.apache.hadoop.hbase.util.FSTableDescriptors;
 import org.apache.hadoop.hbase.util.FSUtils;
 import org.apache.hadoop.hbase.util.FutureUtils;
-import org.apache.hadoop.hbase.util.HasThread;
 import org.apache.hadoop.hbase.util.JvmPauseMonitor;
 import org.apache.hadoop.hbase.util.NettyEventLoopGroupConfig;
 import org.apache.hadoop.hbase.util.Pair;
@@ -246,7 +244,7 @@ import 
org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProto
  */
 @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)
 @SuppressWarnings({ "deprecation"})
-public class HRegionServer extends HasThread implements
+public class HRegionServer extends Thread implements
     RegionServerServices, LastSequenceId, ConfigurationObserver {
   private static final Logger LOG = 
LoggerFactory.getLogger(HRegionServer.class);
 
@@ -1461,7 +1459,7 @@ public class HRegionServer extends HasThread implements
           LOG.debug("Waiting on {}", 
this.regionsInTransitionInRS.keySet().stream().
             map(e -> Bytes.toString(e)).collect(Collectors.joining(", ")));
         }
-        if (sleep(200)) {
+        if (sleepInterrupted(200)) {
           interrupted = true;
         }
       }
@@ -1472,7 +1470,7 @@ public class HRegionServer extends HasThread implements
     }
   }
 
-  private static boolean sleep(long millis) {
+  private static boolean sleepInterrupted(long millis) {
     boolean interrupted = false;
     try {
       Thread.sleep(millis);
@@ -2004,7 +2002,7 @@ public class HRegionServer extends HasThread implements
     
this.executorService.startExecutorService(ExecutorType.RS_SWITCH_RPC_THROTTLE,
       conf.getInt("hbase.regionserver.executor.switch.rpc.throttle.threads", 
1));
 
-    Threads.setDaemonThreadRunning(this.walRoller.getThread(), getName() + 
".logRoller",
+    Threads.setDaemonThreadRunning(this.walRoller, getName() + ".logRoller",
         uncaughtExceptionHandler);
     if (this.cacheFlusher != null) {
       this.cacheFlusher.start(uncaughtExceptionHandler);
@@ -2042,7 +2040,7 @@ public class HRegionServer extends HasThread implements
 
     // Leases is not a Thread. Internally it runs a daemon thread. If it gets
     // an unhandled exception, it will just exit.
-    Threads.setDaemonThreadRunning(this.leaseManager.getThread(), getName() + 
".leaseChecker",
+    Threads.setDaemonThreadRunning(this.leaseManager, getName() + 
".leaseChecker",
         uncaughtExceptionHandler);
 
     // Create the log splitting worker and start it
@@ -2328,7 +2326,7 @@ public class HRegionServer extends HasThread implements
       if (hris[0].isMetaRegion()) {
         try {
           MetaTableLocator.setMetaLocation(getZooKeeper(), serverName,
-              hris[0].getReplicaId(),State.OPEN);
+              hris[0].getReplicaId(), RegionState.State.OPEN);
         } catch (KeeperException e) {
           LOG.info("Failed to update meta location", e);
           return false;
@@ -2675,7 +2673,7 @@ public class HRegionServer extends HasThread implements
             previousLogTime = System.currentTimeMillis();
           }
           refresh = true; // let's try pull it from ZK directly
-          if (sleep(200)) {
+          if (sleepInterrupted(200)) {
             interrupted = true;
           }
           continue;
@@ -2707,7 +2705,7 @@ public class HRegionServer extends HasThread implements
             }
             previousLogTime = System.currentTimeMillis();
           }
-          if (sleep(200)) {
+          if (sleepInterrupted(200)) {
             interrupted = true;
           }
         }
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/LeaseManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/LeaseManager.java
index 15bc2af..dd60a1e 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/LeaseManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/LeaseManager.java
@@ -28,7 +28,6 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.hadoop.hbase.log.HBaseMarkers;
 import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
-import org.apache.hadoop.hbase.util.HasThread;
 import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -53,7 +52,7 @@ import org.slf4j.LoggerFactory;
  * sleep time which is invariant.
  */
 @InterfaceAudience.Private
-public class LeaseManager extends HasThread {
+public class LeaseManager extends Thread {
   private static final Logger LOG = 
LoggerFactory.getLogger(LeaseManager.class.getName());
   private static final int MIN_WAIT_TIME = 100;
 
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
index 17c3c4e..e191f04 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
@@ -46,7 +46,6 @@ import 
org.apache.hadoop.hbase.regionserver.HRegion.FlushResult;
 import org.apache.hadoop.hbase.trace.TraceUtil;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
-import org.apache.hadoop.hbase.util.HasThread;
 import org.apache.hadoop.hbase.util.ServerRegionReplicaUtil;
 import org.apache.hadoop.hbase.util.Threads;
 import org.apache.hadoop.ipc.RemoteException;
@@ -320,7 +319,7 @@ class MemStoreFlusher implements FlushRequester {
     return r == null? 0: r.getMemStoreDataSize();
   }
 
-  private class FlushHandler extends HasThread {
+  private class FlushHandler extends Thread {
 
     private FlushHandler(String name) {
       super(name);
@@ -534,7 +533,7 @@ class MemStoreFlusher implements FlushRequester {
   void join() {
     for (FlushHandler flushHander : flushHandlers) {
       if (flushHander != null) {
-        Threads.shutdown(flushHander.getThread());
+        Threads.shutdown(flushHander);
       }
     }
   }
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java
index cb40187..5040a22 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java
@@ -48,7 +48,6 @@ import org.apache.hadoop.hbase.trace.TraceUtil;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.ClassSize;
 import org.apache.hadoop.hbase.util.CommonFSUtils;
-import org.apache.hadoop.hbase.util.HasThread;
 import org.apache.hadoop.hbase.util.Threads;
 import org.apache.hadoop.hbase.wal.FSHLogProvider;
 import org.apache.hadoop.hbase.wal.WALEdit;
@@ -453,7 +452,7 @@ public class FSHLog extends AbstractFSWAL<Writer> {
    * SyncFutures are 'artificial', something to hold the Handler until the 
filesystem sync
    * completes.
    */
-  private class SyncRunner extends HasThread {
+  private class SyncRunner extends Thread {
     private volatile long sequence;
     // Keep around last exception thrown. Clear on successful sync.
     private final BlockingQueue<SyncFuture> syncFutures;
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java
index cfa6f75..cc0f49a 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java
@@ -336,7 +336,7 @@ public class JVMClusterUtil {
             // The below has been replaced to debug sometime hangs on end of
             // tests.
             // this.master.join():
-            Threads.threadDumpingIsAlive(t.master.getThread());
+            Threads.threadDumpingIsAlive(t.master);
           } catch(InterruptedException e) {
             LOG.info("Got InterruptedException on shutdown - " +
                 "not waiting anymore on master ends", e);
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AbstractWALRoller.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AbstractWALRoller.java
index 304eeb0..d668cf1 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AbstractWALRoller.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AbstractWALRoller.java
@@ -34,7 +34,6 @@ import 
org.apache.hadoop.hbase.regionserver.wal.FailedLogCloseException;
 import org.apache.hadoop.hbase.regionserver.wal.WALActionsListener;
 import org.apache.hadoop.hbase.regionserver.wal.WALClosedException;
 import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.hbase.util.HasThread;
 import org.apache.hadoop.ipc.RemoteException;
 import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
@@ -52,7 +51,7 @@ import org.slf4j.LoggerFactory;
  * TODO: change to a pool of threads
  */
 @InterfaceAudience.Private
-public abstract class AbstractWALRoller<T extends Abortable> extends HasThread
+public abstract class AbstractWALRoller<T extends Abortable> extends Thread
   implements Closeable {
   private static final Logger LOG = 
LoggerFactory.getLogger(AbstractWALRoller.class);
 
@@ -223,7 +222,7 @@ public abstract class AbstractWALRoller<T extends 
Abortable> extends HasThread
   protected abstract void scheduleFlush(String encodedRegionName);
 
   private boolean isWaiting() {
-    Thread.State state = getThread().getState();
+    Thread.State state = getState();
     return state == Thread.State.WAITING || state == 
Thread.State.TIMED_WAITING;
   }
 
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionAssignedToMultipleRegionServers.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionAssignedToMultipleRegionServers.java
index 44af256..700523c 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionAssignedToMultipleRegionServers.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionAssignedToMultipleRegionServers.java
@@ -163,7 +163,7 @@ public class TestRegionAssignedToMultipleRegionServers {
     KILL = true;
     HMaster activeMaster = UTIL.getMiniHBaseCluster().getMaster();
     activeMaster.abort("For testing");
-    activeMaster.getThread().join();
+    activeMaster.join();
     KILL = false;
 
     // sleep a while to reproduce the problem, as after the fix in HBASE-21472 
the execution logic
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java
index 6230f02..602367c 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java
@@ -321,7 +321,7 @@ public final class WALPerformanceEvaluation extends 
Configured implements Tool {
       final Runnable[] benchmarks = new Runnable[numRegions];
       final MockRegionServerServices mockServices = new 
MockRegionServerServices(getConf());
       final LogRoller roller = new LogRoller(mockServices);
-      Threads.setDaemonThreadRunning(roller.getThread(), 
"WALPerfEval.logRoller");
+      Threads.setDaemonThreadRunning(roller, "WALPerfEval.logRoller");
 
       try {
         for(int i = 0; i < numRegions; i++) {

Reply via email to