HBASE-22870 reflection fails to access a private nested class

Signed-off-by Reid Chan <reidchan@apache.org>
This commit is contained in:
satanson 2019-08-18 09:47:06 +08:00 committed by Reid Chan
parent 836f26976e
commit 7697d48cd7
1 changed files with 4 additions and 2 deletions

View File

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