[ https://issues.apache.org/jira/browse/HBASE-22870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Reid Chan updated HBASE-22870: ------------------------------ Fix Version/s: (was: 2.2.2) 2.2.1 > reflection fails to access a private nested class > ------------------------------------------------- > > Key: HBASE-22870 > URL: https://issues.apache.org/jira/browse/HBASE-22870 > Project: HBase > Issue Type: Bug > Components: master > Affects Versions: 2.1.5 > Reporter: ranpanfeng > Priority: Major > Fix For: 3.0.0, 2.3.0, 2.2.1, 2.1.7 > > Original Estimate: 1h > Remaining Estimate: 1h > > HMaster crashes at > org/apache/hadoop/hbase/regionserver/HRegionServer.java:1044 > *A private static nested class can not be instantiated via reflection.* > *code snippet* > > {code:java} > > try { > abortTimeoutTask = > Class.forName(conf.get(ABORT_TIMEOUT_TASK, > SystemExitWhenAbortTimeout.class.getName())) > .asSubclass(TimerTask.class).getDeclaredConstructor().newInstance(); > } catch (Exception e) { > LOG.warn("Initialize abort timeout task failed", e); > }{code} > > > *log in product environtment* > {code:java} > 2019-08-16 18:01:40,737 [WARN ] HRegionServer:1046 Initialize abort timeout > task failed > java.lang.IllegalAccessException: Class > org.apache.hadoop.hbase.regionserver.HRegionServer can not access a member of > class org.apache.hadoop.hbase.regionss > erver.HRegionServer$SystemExitWhenAbortTimeout with modifiers "private" > at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:102) > at > java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:296) > at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:288) > at java.lang.reflect.Constructor.newInstance(Constructor.java:413) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:1044) > at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:598){code} -- This message was sent by Atlassian JIRA (v7.6.14#76016)