You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by re...@apache.org on 2019/08/18 05:28:22 UTC

[hbase] branch branch-2.1 updated: HBASE-22870 reflection fails to access a private nested class

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

reidchan pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 9e18049  HBASE-22870 reflection fails to access a private nested class
9e18049 is described below

commit 9e180499577bac0a103eb965055d961d19e15acb
Author: satanson <ra...@gmail.com>
AuthorDate: Sun Aug 18 09:47:06 2019 +0800

    HBASE-22870 reflection fails to access a private nested class
    
    Signed-off-by Reid Chan <re...@apache.org>
    
    Conflicts:
    	hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
---
 .../java/org/apache/hadoop/hbase/regionserver/HRegionServer.java  | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

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 405d75a..587e7f6 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
@@ -1047,9 +1047,11 @@ public class HRegionServer extends HasThread implements
       Timer abortMonitor = new Timer("Abort regionserver monitor", true);
       TimerTask abortTimeoutTask = null;
       try {
-        abortTimeoutTask =
-            Class.forName(conf.get(ABORT_TIMEOUT_TASK, SystemExitWhenAbortTimeout.class.getName()))
-                .asSubclass(TimerTask.class).getDeclaredConstructor().newInstance();
+        Constructor<? extends TimerTask> timerTaskCtor =
+          Class.forName(conf.get(ABORT_TIMEOUT_TASK, SystemExitWhenAbortTimeout.class.getName()))
+            .asSubclass(TimerTask.class).getDeclaredConstructor();
+        timerTaskCtor.setAccessible(true);
+        abortTimeoutTask = timerTaskCtor.newInstance();
       } catch (Exception e) {
         LOG.warn("Initialize abort timeout task failed", e);
       }